Передайте каждый столбец подряд в хэш-функцию в Spark SQL - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть таблица со столбцами N, я хочу объединить их все в строковый столбец, а затем выполнить хэш для этого столбца. Я нашел похожий вопрос в Scala.

Я хочу сделать это полностью в Spark SQL в идеале, я попытался HASH(*) as myhashcolumn, но из-за того, что несколько столбцов иногда бывают пустыми, я не могу 'сделать так, как я ожидал.

Если мне нужно создать UDF и зарегистрировать его, чтобы это произошло, мне нужно использовать Python, а не Scala, поскольку весь мой другой код написан на Python.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Попробуйте код ниже.

df.select([hash(col) for col in df.columns]).show()
0 голосов
/ 26 ноября 2018

Вы можете сделать это в pyspark, как показано ниже (просто передайте входные столбцы в функцию):

new_df = df.withColumn("contcatenated", hash_function(col("col1"), col("col2"), col("col3")))
...