【问题标题】:SQL Data Warehouse External Table with String fields带有字符串字段的 SQL 数据仓库外部表
【发布时间】:2021-02-09 05:14:52
【问题描述】:

我无法找到使用 Polybase 在 Azure SQL 数据仓库(突触 SQL 池)中创建外部表的方法,其中某些字段包含嵌入式逗号。

对于一个 4 列的 csv 文件如下:

myresourcename, 
myresourcelocation, 
"""resourceVersion"": ""windows"",""deployedBy"": ""john"",""project_name"": ""test_project""",
"{  ""ResourceType"": ""Network"",  ""programName"": ""v1""}" 

尝试使用以下创建外部表语句。

CREATE EXTERNAL FILE FORMAT my_format
WITH (  
    FORMAT_TYPE = DELIMITEDTEXT,
    FORMAT_OPTIONS(
        FIELD_TERMINATOR=',',
        STRING_DELIMITER='"',
        First_Row = 2
    )    
); 
CREATE EXTERNAL TABLE my_external_table
(
resourceName VARCHAR,
resourceLocation    VARCHAR,
resourceTags    VARCHAR,
resourceDetails VARCHAR
)  
WITH (
    LOCATION = 'my/location/',
    DATA_SOURCE = my_source,  
    FILE_FORMAT = my_format
)

但是查询这个表会报如下错误:

Failed to execute query. Error: HdfsBridge::recordReaderFillBuffer - Unexpected error encountered filling record reader buffer: HadoopExecutionException: Too many columns in the line.

任何帮助将不胜感激。

【问题讨论】:

  • 一定要DELIMITEDTEXT格式吗?我更喜欢使用 parquet.snappy,因为压缩效果更好,而且几乎不存在数据质量问题。否则我认为该数据是垃圾,并将我的拒绝阈值设置为从 0 到 50 或与此一致的值

标签: sql-server external-tables azure-synapse polybase


【解决方案1】:

目前polybase不支持此功能,需要相应地修改输入数据才能使其正常工作。

【讨论】:

    猜你喜欢
    • 2018-04-30
    • 2018-06-09
    • 1970-01-01
    • 2020-07-03
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多