6

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 内にとどまる必要があります。ありがとう!

4

1 に答える 1