DataBricks:在arrays_zip函数中使用变量

时间:2019-10-14 03:42:58

标签: python databricks

我可以知道是否可以在arrays_zip函数中使用变量/数组吗? 例如我声明和数组 array1 = [“ col1”,“ col2”]

然后在数据框中。我写以下内容: df.withColumn(“ zipped”,arrays_zip(array1)) 然后告诉我这不是一个有效的参数,不是字符串或列

有人知道吗?

2 个答案:

答案 0 :(得分:0)

您可以尝试以下类似方法,它应该可以工作:

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)

根据定义:

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

希望有帮助。

答案 1 :(得分:0)

使用以下内容:

array = [“ col1”,“ col2”]

df.select(arrays_zip(* [c表示数组中的c]])。show()

谢谢