0
reduce
のような関数型プログラミング構造を使用する方法を学び、union
複数のdataframes
を一緒に使用する方法を試しています。私は単純なforループでそれを達成することができました。あなたは私の試みだったexpr
をコメントアウトして見ることができます。私が遭遇している問題は、reduce
がPython
の機能なので、同じ機能でPython
とSpark
コードをインターリーブしています。コンパイラは幸せ。ここでreduce式で.unionAll()を使用して単一のデータフレームを作成する方法
が私のコードです:
df1 = sqlContext.createDataFrame(
[
('1', '2', '3'),
],
['a', 'b', 'c']
)
df2 = sqlContext.createDataFrame(
[
('4', '5', '6'),
],
['a', 'b', 'c']
)
df3 = sqlContext.createDataFrame(
[
('7', '8', '9'),
],
['a', 'b', 'c']
)
l = [df2, df3]
# expr = reduce(lambda acc, b: acc.unionAll(b), l, '')
for df in l:
df1 = df1.unionAll(df)
df1.select('*').show()