Формат файла PolyBase хранилища данных Azure
У нас есть файл, который выглядит так:
Col1,Col2,Col3,Col4,Col5
"Hello,",I,",am",some,data!
Поэтому он имеет следующие "свойства":
- Разделенные запятой
- Разделитель столбцов в двойных кавычках
- Запятые в некоторых столбцах
Теперь, я не уверен, возможно ли на самом деле это проглотить с помощью PolyBase, но задумался, есть ли способ?
Ошибка, которую мы видим в настоящее время:Could not find a delimiter after quote
"... что, я думаю, потому что после двойной кавычки она попадает в ожидаемый разделитель..
Вот наш текущий формат файла, для полноты:
CREATE EXTERNAL FILE FORMAT Comma
WITH (FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS(
FIELD_TERMINATOR = ',',
STRING_DELIMITER = '"',
)
)
2 ответа
В конце концов разобрались, добавив промежуточный шаг для преобразования файла из csv в формат ORC.
Это немного неуклюже (поскольку это оставляет беспорядок копии), но PolyBase тогда работает с форматом файла:
CREATE EXTERNAL FILE FORMAT Orc
WITH (FORMAT_TYPE = ORC)
работает до тех пор, пока команда разработчиков не решит эту проблему: https://feedback.azure.com/forums/307516-sql-data-warehouse/suggestions/10600132-polybase-allow-field-row-terminators-within-strin
Вместо этого укажите это в шестнадцатеричном виде.
STRING_DELIMITER = '0x22'
(На основании проблемы, описанной в конце https://msdn.microsoft.com/en-au/library/dn935026.aspx)