【问题标题】:Could not find a delimiter after string delimiter在字符串分隔符后找不到分隔符
【发布时间】:2021-10-06 00:01:02
【问题描述】:

我正在尝试将数据从包含 "/,/|/^ 数据的 csv 平面文件加载到 polybase 表中。

我已经用(STRING_DELIMITER = '"')创建了文件格式

CREATE EXTERNAL FILE FORMAT StringDelimiter WITH (
    FORMAT_TYPE = DELIMITEDTEXT,
    FORMAT_OPTIONS (
        FIELD_TERMINATOR = ',',
        STRING_DELIMITER = '"',
        FIRST_ROW = 2,
        ENCODING = 'UTF8'
) );

但我在从 blob 存储中获取时出错:

HdfsBridge::recordReaderFillBuffer - 填充记录读取器缓冲区时遇到意外错误:HadoopExecutionException:在字符串分隔符后找不到分隔符。

【问题讨论】:

    标签: azure blob azure-data-factory polybase


    【解决方案1】:

    很遗憾,在使用 Polybase 加载时,突触中尚不支持转义字符。

    您可以在数据工厂中将 CSV 平面文件转换为 Parquet 文件格式。

    然后使用以下查询创建外部文件格式

    CREATE EXTERNAL FILE FORMAT table_name
    WITH
    (  
        FORMAT_TYPE = PARQUET,
        DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
    )
    

    参考链接1-https://docs.microsoft.com/en-us/answers/questions/118102/polybase-load-csv-file-that-contains-text-column-w.html

    参考链接2-https://docs.microsoft.com/en-us/azure/synapse-analytics/sql/develop-tables-external-tables?tabs=hadoop#arguments-for-create-external-file-format

    【讨论】:

      猜你喜欢
      • 2017-05-17
      • 2013-04-18
      • 2014-02-10
      • 1970-01-01
      • 2017-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多