Spark:如何在每个执行程序中创建本地数据帧
Posted
技术标签:
【中文标题】Spark:如何在每个执行程序中创建本地数据帧【英文标题】:Spark : how can i create local dataframe in each executor 【发布时间】:2018-02-09 23:40:32 【问题描述】:在 spark scala 中,有一种方法可以在 pyspark 中的 pandas 等执行器中创建本地数据框。在 mappartitions 方法中,我想将迭代器转换为本地数据帧(如 python 中的 pandas 数据帧),以便可以使用数据帧特征而不是在迭代器上手动编码。
【问题讨论】:
【参考方案1】:这是不可能的。
Dataframe 是 Spark 中的分布式集合。并且数据帧只能在驱动节点上创建(即在转换/动作之外)。
此外,在 Spark 中,您无法在其他操作中对 RDD/Dataframes/Datasets 执行操作: 例如以下代码将产生错误。
rdd.map(v => rdd1.filter(e => e == v))
DF 和 DS 在下面也有 RDD,所以那里的行为相同。
【讨论】:
以上是关于Spark:如何在每个执行程序中创建本地数据帧的主要内容,如果未能解决你的问题,请参考以下文章