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

spa*_*ats 2 scala pandas apache-spark pyspark

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

Vla*_*ans 7

这是不可能的。

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

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

rdd.map(v => rdd1.filter(e => e == v))
Run Code Online (Sandbox Code Playgroud)

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