Как разделить большой файл на файлы / каталоги, используя только U-SQL и определенные поля в файле?
У меня очень большой CSV, где каждая строка содержит идентификаторы клиентов и магазинов, а также информацию о транзакциях. Текущий тестовый файл составляет около 40 ГБ (около 2 дней), поэтому разбиение является обязательным условием для любого разумного времени возврата по отдельным запросам.
У меня такой вопрос: когда мы получаем файл, он содержит данные нескольких магазинов. Я хотел бы использовать функциональность «виртуальный столбец» для разделения этого файла в соответствующей структуре каталогов. Эта структура является "/Data/ndomCustomerId‹/ndomStoreID‹/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), которая берет два идентификатора и фильтрует весь набор данных, но это кажется ужасно неэффективным.
Заранее спасибо за чтение / ответы!