【发布时间】:2021-05-01 13:05:50
【问题描述】:
我正在使用存储在 Azure Data Lake Storage 中的 CSV 创建一个外部表,并使用 SQL Server 中的 Polybase 填充该表。
但是,我遇到了这个问题,并认为这可能是因为在一个特定的列中,字符串中存在双引号,并且字符串分隔符在 Polybase (STRING_DELIMITER = '"') 中指定为 "。
HdfsBridge::recordReaderFillBuffer - Unexpected error encountered filling record reader buffer: HadoopExecutionException: Could not find a delimiter after string delimiter
例子:
我对此进行了相当广泛的研究,发现这个问题已经存在多年,但尚未看到任何解决方案。
任何帮助将不胜感激。
【问题讨论】:
-
您能提供一些示例数据吗?这可能是问题所在。
-
我添加了一个字符串,该字符串类似于我的列中的内容,我认为这是 Polybase 不允许这样的问题
-
我的处理方法是不指定字符串分隔符,导入该数据并使用 SQL 清理它。另一种思考方式是,你能用英文写一条你希望导入遵循的规则吗?
-
假设您的数据还有其他列,您能否提供一个更真实的样本?
-
如果您的示例是正确的,那么您没有处理正确编码的 CSV 文件。 RFC 4180 Common Format and MIME Type for Comma-Separated Values (CSV) Files 会让你将该字符串编码为:
"Hello ""world"", it's me"(注意世界各地的双引号)。
标签: sql-server data-warehouse polybase