0
我试图学习使用函数编程结构如reduce
,并且我正在试图如何使用它来将union
多个dataframes
一起使用。我能够用一个简单的for循环来完成它。你可以看到注释掉expr
这是我的尝试,我遇到的问题是reduce
是Python
函数,所以我在交叉Python
和Spark
代码在相同的功能,这并不使编译器开心。如何在减少表达式中使用.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()