PySpark:从数据帧列表创建RDD

时间:2017-04-09 20:31:19

标签: python pyspark rdd

我无法从pyspark数据框列表中创建RDD,如下所示:

l = [('Alice', 1)]
df = sqlContext.createDataFrame(l)
m = [('bob', 2)]
df2 = sqlContext.createDataFrame(m)
df_list = [df, df2]
sc.parallelize(df_list)

我得到的错误是: Py4JError: An error occurred while calling o85.__getnewargs__. Trace: py4j.Py4JException: Method __getnewargs__([]) does not exist

parallelize电话。它使用一个简单的列表,如[1,2,3],但当列表的元素成为数据帧时,它似乎失败了......请指教。

我有一个时间序列数据框,可以按列的id进行分组。由于我需要对每个时间序列数据进行一些计算,我的想法是通过id将数据帧拆分为多个数据帧,并使每个数据帧成为列表中的元素,因此当我从该列表创建RDD时,我可以并行地对数据帧进行计算。

我使用的是Spark 1.6。 提前谢谢!

1 个答案:

答案 0 :(得分:0)

只有当您的数据框具有相同的架构时,这才有效。

df = df.unionAll(df2)
rdd = df.rdd()