Использование: Apache просверлитьПреобразование CSV строки в несколько столбцов в Apache Drill
Я пытаюсь привести следующие данные в более структурированном виде:
"apple","juice", "box:12,shipment_id:143,pallet:B12"
"mango", "pulp", "box:7,shipment_id:133,pallet:B19,route:11"
"grape", "jam", "box:10"
Желаемый результат:
fruit, product, box_id, shipment_id, pallet_id, route_id
apple,juice, 12, 143, B12, null
mango, pulp, 7, 133, B19, 11
grape, jam, 10, null, null, null
Dataset запускается в пару GB. Сверло считывает ввод в три столбца с последней строкой в одном столбце. Успешно достигнув желаемого результата, выполнив операции манипуляции строками (REGEXP_REPLACE и CONCAT) в последнем столбце, затем прочитав столбец как json (CONVERT_FROM) и, наконец, разделившись на разные столбцы, используя KVGEN и FLATTEN.
Время выполнения довольно высокое из-за функций регулярного выражения. Есть ли лучший подход?
(PS: время выполнения сравнивается с использованием задания pyspark для достижения желаемого результата).