Формат файла 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)

Другие вопросы по тегам