首页 文章

如何处理回车,在带引号的字符串中换行

提问于
浏览
1

我想使用Azure Data Lake处理的多个源系统包含回车符,列中包含换行符 .

这会导致ADLA中的Extract失败,并显示以下错误:

E_RUNTIME_USER_EXTRACT_UNEXPECTED_ROW_DELIMITER

试图找到一个工作配置不再遇到这个问题 . Microsoft.com上的本机Extractor文档描述了这一点:

请注意,引用字符串中的rowDelimiter字符不会被转义,并将用作行分隔符,这将导致错误或失败的提取 . https://msdn.microsoft.com/en-us/azure/data-lake-analytics/u-sql/extractor-parameters-u-sql

不幸的是,这没有提到一个好的解决方法 .

我尝试切换到另一种格式,如Orc或Parquet . 但是,目前看来还没有完全支持这些 . 由于这限制了开发环境的功能,我现在暂不使用这些格式 .

这个问题似乎很有可能发生,但我无法找到一个好的解决方案 . 在保持使用csv / tsv存储文件的便利性的同时,解决此问题的优秀标准解决方案是什么?

1 回答

  • 0

    我通过基于第三方CSV解析器创建自定义提取器来实现此目的 . 具体来说,来自Josh Close的奇妙CsvHelper库的CsvParser类 . 奇迹般有效 . 不要忘记设置AtomicFileProcessing = true .

相关问题