【发布时间】:2016-11-10 07:59:56
【问题描述】:
我正在尝试学习使用像reduce 这样的函数式编程结构,并且我正在尝试了解如何将它与union 多个dataframes 一起使用。我能够通过一个简单的 for 循环来完成它。您可以看到注释掉的expr 这是我的尝试,我遇到的问题是reduce 是Python 函数,所以我将Python 和Spark 代码交错同一个函数,编译器不高兴。
这是我的代码:
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()
【问题讨论】:
标签: python apache-spark dataframe pyspark apache-spark-sql