这是创建 pyspark.sql DataFrame 的代码
import numpy as np
import pandas as pd
from pyspark import SparkContext
from pyspark.sql import SQLContext
df = pd.DataFrame(np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]]), columns=['a','b','c'])
sparkdf = sqlContext.createDataFrame(df, samplingRatio=0.1)
所以 sparkdf 看起来像
a b c
1 2 3
4 5 6
7 8 9
10 11 12
现在我想添加一个 numpy 数组(甚至是一个列表)作为新列
new_col = np.array([20,20,20,20])
但是标准的方式
sparkdf = sparkdf.withColumn('newcol', new_col)
失败。可能 udf 是要走的路,但我不知道如何创建一个 udf,为每个 DataFrame 行分配一个不同的值,即遍历 new_col。我查看了其他 pyspark 和 pyspark.sql 但找不到解决方案。另外我需要留在 pyspark.sql 中,所以不是 scala 解决方案。谢谢!