Spark:我如何在每个执行器中创建本地数据帧

时间:2018-02-09 23:40:32

标签: scala pandas apache-spark pyspark

在spark scala中有一种方法可以在pyspark中的pandas等执行器中创建本地数据帧。在mappartitions方法中,我想将迭代器转换为本地数据帧(如python中的pandas数据帧),以便可以使用数据帧功能而不是在迭代器上对它们进行手工编码。

1 个答案:

答案 0 :(得分:3)

这是不可能的。

Dataframe是Spark中的分布式集合。并且只能在驱动程序节点上创建数据帧(即在转换/操作之外)。

此外,在Spark中,您无法在其他操作中对RDD / Dataframes / Datasets执行操作: 例如以下代码将产生错误。

rdd.map(v => rdd1.filter(e => e == v))

DF和DS下面也有RDD,因此也有相同的行为。