Мой пример использования - когда искровой UDF принимает строку в качестве входа и возвращает ту же строку с измененными столбцами на основе некоторых динамических условий, генерируемых при переходе в трансляции хэш-карты. Все, что нужно сделать UDF - это получить столбцы из HashMap, изменить его с указанным условием и вернуть новую строку с некоторыми существующими значениями из входной строки и некоторыми обновленными значениями, полученными из условий широковещательного HashMap. Если нет, возвращает входную строку как есть.
Я не уверен, как вызвать этот UDF для всей строки и как в UDF можно выбрать определенный динамический столбец на основе его имени и применить условия.
и так как это динамический и общий udf, я не могу сделать пользовательский StrutType, он должен быть динамическим
so My data looks like, where a,b,c and d are column names
a | b | c | d |
12 | ac | qa | rt |
Карта выглядит так
a -> a*2+b
b -> c+d
, поэтому для всех значений в a и b должны быть изменены значения карты. Эта карта транслируется и является динамичной. функция должна быть способна принимать в любой строке и читать карту и соответственно
поэтому я ожидаю, что результат будет как
a | b | c | d |
24ac | qart | qa | rt |
and the next dataset can be
q | p | c | d |
0 | !@ | R% | qa |
Карта будет выглядеть так
q -> q^2+2
c -> q+p+c+d
поэтому ожидаю, что результат будет
q | p | c | d |
2 | !@ | 0!@R%qa | rt |
все динамически обрабатываются