У меня очень большой CSV, где каждая строка содержит идентификаторы клиентов и магазинов, а также информацию о транзакции. Текущий тестовый файл составляет около 40 ГБ (около 2 дней), поэтому разделение является абсолютным обязательным условием для любого разумного времени возврата для выбранных запросов.Как переместить большой файл в файлы/каталоги, используя только U-SQL и определенные поля в файле?
Мой вопрос заключается в следующем: когда мы получаем файл, он содержит данные нескольких магазинов. Я хотел бы использовать функциональность «виртуального столбца», чтобы разделить этот файл на соответствующую структуру каталогов. Эта структура «/Data/{CustomerId}/{StoreID}/file.csv».
Я еще не получил его для работы с оператором OUTPUT. Использование заявление было таким образом:
// Output to file
OUTPUT @dt
TO @"/Data/{CustomerNumber}/{StoreNumber}/PosData.csv"
USING Outputters.Csv();
Это дает следующее сообщение об ошибке:
Bad request. Invalid pathname. Cosmos Path: adl://<obfuscated>.azuredatalakestore.net/Data/{0}/{1}/68cde242-60e3-4034-b3a2-1e14a5f7343d
Кто-нибудь попытки такого же рода вещи? Я попытался связать выходной путь с полями, но это было нехорошо. Я думал о том, чтобы делать это как функцию (UDF), которая берет два идентификатора и фильтрует весь набор данных, но это кажется ужасно неэффективным.
Заранее благодарим за чтение/ответ!
Совершенных ! Большое спасибо за ответ! (Я немного взволнован, фактически слыша от команды!) –
Чтобы добавить к ответу Saveen: запрос функции отслеживается по адресу https://feedback.azure.com/forums/327234-data-lake/suggestions/10550388-support -dynamic-вывод-файл-имена-в-adla. Не стесняйтесь добавлять свой голос, хотя функция находится в разработке. –