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 が最適ですが、DataFrame 行ごとに 1 つの異なる値を割り当てる、つまり new_col を反復処理する udf を作成する方法がわかりません。他の pyspark と pyspark.sql を見てきましたが、解決策が見つかりませんでした。また、scala ソリューションではなく、pyspark.sql 内にとどまる必要があります。ありがとう!