DataBricks: использование переменной в функции arrays_zip - PullRequest
0 голосов
/ 14 октября 2019

Могу ли я узнать, можем ли мы использовать переменную / массив в функции arrays_zip ?? Например, я объявляю и массив array1 = ["col1", "col2"]

затем в кадре данных. Я пишу следующее: df.withColumn ("zipped", arrays_zip (array1)), затем он говорит мне, что это недопустимый аргумент, не строка или столбец

у кого-нибудь есть идея?

Ответы [ 2 ]

0 голосов
/ 15 октября 2019

с использованием следующего:

array = ["col1", "col2"]

df.select (arrays_zip (* [c для c в массиве]]). Show ()

Спасибо

0 голосов
/ 14 октября 2019

Вы можете попробовать что-то вроде ниже, оно должно работать:

from pyspark.sql.functions import arrays_zip

df_zip = df.withColumn(
  "zipped", arrays_zip("column_1", "column_2")
)

df_zip.select("zipped").show(truncate=False)

AS согласно определению:

pyspark.sql.functions.arrays_zip(*cols)[source]

Функция сбора : Возвращает объединенный массивструктур, в которых N-ая структура содержит все N-ые значения входных массивов.

Параметры cols - столбцы массивов для объединения.

Функция сбора:Возвращает объединенный массив структур, в котором N-я структура содержит все N-е значения входных массивов.

Параметры cols - столбцы массивов, которые должны быть объединены.

Дополнительная ссылка:

https://spark.apache.org/docs/latest/api/python/pyspark.sql.html?highlight=arrays_zip#pyspark.sql.functions.arrays_zip

Надеюсь, это поможет.

...