У меня есть таблица ввода (I) со 100 столбцами и 10 миллионами записей. Я хочу получить таблицу вывода (O), которая имеет 50 столбцов, и эти столбцы выводятся из столбцов I, т.е. Будет 50 функций, которые отображают столбцы I-50 столбцов O, т.е. o1 = f (i1), o2 = f (i2, i3)..., o50 = f (i50, i60, i70).
В искровом sql я могу сделать это двумя способами:
- преобразование строк, где целая строка я анализируется (например: функция карты) один за другим, чтобы создать строку O.
- Используйте UDF, который, как я полагаю, работает на уровне столбца, то есть беру существующие столбцы я в качестве входных данных и создаю один из соответствующих столбцов O i.e используйте 50 функций UDF.
Я хочу знать, какой из вышеперечисленных 2 более эффективен (более высокая распределенная и параллельная обработка) и почему или если они одинаково быстрые/эффективные, учитывая, что я обрабатываю всю входную таблицу я и производя полностью новую таблицу вывода O т.е. его объемную обработку данных.