Внешняя таблица хранилища данных SQL со строковыми полями

Я не могу найти способ создать внешнюю таблицу в хранилище данных SQL Azure (пул Synapse SQL) с помощью Polybase, где некоторые поля содержат встроенные запятые.

Для файла CSV с 4 столбцами, как показано ниже:

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

Пробовал со следующими операторами Create External Table.

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.

Любая помощь будет оценена по достоинству.


person user2263025    schedule 26.10.2020    source источник
comment
У вас есть формат DELIMITEDTEXT? Я предпочитаю использовать parquet.snappy, так как сжатие лучше, а проблемы с качеством данных практически отсутствуют. В противном случае я считаю эти данные мусором и устанавливаю порог отклонения от 0 до 50 или что-то в соответствии с этим   -  person JPVoogt    schedule 02.11.2020


Ответы (1)


В настоящее время это не поддерживается в polybase, необходимо соответствующим образом изменить входные данные, чтобы заставить его работать.

person HarithaMaddi-MSFT    schedule 04.11.2020