Как сохранить byte [] как строку в U-SQL - PullRequest
0 голосов
/ 24 мая 2018

SQL-скрипт (Azure Data Lake Analytics), в котором я извлекаю слишком большой текст для строки.Поэтому я использую байт [].Но когда я сохраняю результаты в файле CSV, этот текст кодируется в BASE64.

Можно ли сохранить его в виде простой строки?(Для сохранения я использую Outputters.Csv () ).

ИЛИ:

Затем я копирую данные (с помощью фабрики данных Azure) в SQLбаза данных.Есть ли возможность сохранить этот текст как тип данных varchar / text в базе данных?Я обнаружил, что DF имеет decodeBase64 () функция https://docs.microsoft.com/en-us/azure/data-factory/control-flow-expression-language-functions#conversion-functions, но я не знаю, как использовать его при копировании.

1 Ответ

0 голосов
/ 24 мая 2018

На самом деле встроенный CSV-выход использует шестнадцатеричное кодирование, а не base64-кодирование.Хотя это может быть полезным вариантом.Семейство Csv / Tsv / Text Extractor / Outputter ожидает, что данные основаны на тексте, и что не символьные кодовые точки, такие как ETX или LF, используются только для целей разграничения.Таким образом, вместо записи произвольного байтового потока, он будет сериализовать его в шестнадцатеричном коде.

Если вы хотите записать его без шестнадцатеричного кодирования, я предлагаю вам написать собственный выводчик, который будет записывать байт [] как есть,Или используйте шестнадцатеричный декодер на стороне потребителя.Я, вероятно, попробую последнее перед написанием выходного устройства (хотя это, вероятно, достаточно простой выходной).

...