Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用pyspark将列表数组作为新列添加到spark数据帧_Python_Arrays_Apache Spark_Pyspark_Apache Spark Sql - Fatal编程技术网

Python 如何使用pyspark将列表数组作为新列添加到spark数据帧

Python 如何使用pyspark将列表数组作为新列添加到spark数据帧,python,arrays,apache-spark,pyspark,apache-spark-sql,Python,Arrays,Apache Spark,Pyspark,Apache Spark Sql,我有一个列表数组 array([1,2,3,4.....,50]) 我想将此列表中的每个元素作为新列添加到我当前的spark数据帧中。 像这样的 col1|col2|new_col ------------------- a |aa |1 ------------------- b |bb |2 ------------------- c |cc |3 ------------------- d |dd |4 ------------------- ... ... ..

我有一个列表数组

array([1,2,3,4.....,50])
我想将此列表中的每个元素作为新列添加到我当前的spark数据帧中。 像这样的

col1|col2|new_col
-------------------
a   |aa  |1
-------------------
b   |bb  |2
-------------------
c   |cc  |3
-------------------
d   |dd  |4
-------------------
...
...
...
...
-------------------
z  |zz  |50
--------------------

withColumn似乎不适用于这种情况。

使用
arrays\u-zip
函数,首先我们需要将现有数据转换为数组,然后使用
arrays\u-zip
函数组合现有和新的数据列表。检查下面的代码

list_data = [1,2,3,4.....,50]

df \
.select(collect_list(struct(F.col("*"))).alias("data")) \
.withColumn("list",F.array([F.lit(i) for i in list_data])) \
.select(F.explode(F.arrays_zip(F.col("data"),F.col("list"))).alias("full_data")) \ 
.select(F.col("full_data.data.*"),F.col("full_data.list").alias("col3")) \ 
.show()


Spark Version>=
2.4.0

获取错误
'numpy.int64'对象没有属性'\u get\u object\u id'
Spark Version??Spark 3.0.1位于withColumn语句的右侧。数组以某种方式导致了问题。使用了一个普通的列表,它工作正常,但列表数组不工作。好的..我已经从你的问题中复制了它并粘贴了。。现在更新的解决方案检查onceYea我知道列表正在运行。我不想要清单。我有一个列表数组。我想把它作为一个新专栏。即使我将列表数组转换为一个列表,然后使用该列表,它也会发出相同的错误。我尝试了一个像[1,2,3]这样的示例列表,然后它开始工作了。即使我正在使用list(数组)将数组([list])更改为列表,然后使用该列表。它发出了同样的错误。