apache arrow-并行处理的充分性

gzszwxb4  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(424)

我有一个巨大的数据集,正在使用apachespark进行数据处理。
使用apachearrow,我们可以将spark兼容的Dataframe转换为pandas兼容的Dataframe,并在其上运行操作。
通过转换Dataframe,它会达到spark中所看到的并行处理性能,还是会表现得像Pandas?

nwsw7zdq

nwsw7zdq1#

你可以在这里的文档中看到
注意,即使使用arrow,topandas()也会将Dataframe中的所有记录收集到驱动程序,并且应该在数据的一小部分上完成
当数据移动到Dataframe时,数据将被发送到驱动程序。这意味着,如果有太多数据需要驱动程序处理,则可能会出现性能问题。因此,如果您决定使用pandas,请尝试在调用之前对数据进行分组 toPandas() 方法。
一旦转换成pandasDataframe,它就不会有同样的并行化,因为spark执行器不会处理那个场景。arrow的优点是能够直接从sparkDataframe移动到pandas,但是您必须考虑数据的大小
另一种可能是使用其他框架,如考拉。它有一些Pandas的“美”,但它融入了spark。

相关问题