Динамически генерировать Spark Column с помощью операции выборки из БД - PullRequest
0 голосов
/ 17 марта 2019

У меня есть искровой фрейм данных с 2 столбцами.

Я хочу создать 3-й столбец на фрейме данных искры.

3-й столбец должен быть заполнен значением, извлеченным из БДиспользуя первые 2 столбца.

data = data.withColumn("z", getValueOfZ(col("x"),col("y")));

Я не могу понять, как мне заполнить значение y, используя x и y в функции getValueOfZ().GetValueOfZ () должен выполнить запрос на выборку на основе значений x и y и вернуть значение Z

1 Ответ

0 голосов
/ 17 марта 2019

Я не знаю, что getValueOfY() должен делать.У вас есть 3 варианта с Spark.

Простая операция

Если это простая операция, вы можете использовать expr().Например, если результатом является сумма x и y, вы можете использовать:

df = df.withColumn("y", expr("x + y")));

Вы можете использовать expr() с помощью:

import static org.apache.spark.sql.functions.expr;

Встроенные функции

Spark предлагает множество таких функций.Их Javadoc доступен здесь .

Пользовательское преобразование UDF

Если ваш код более сложный и не может быть обработан с помощью выражения или функции, вы можете вызвать UDF (пользовательская функция).

Надеюсь, это поможет, не стесняйтесь комментировать, чтобы задать больше вопросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...