通过已经分布在内存中的数据集触发Dataframe创建

vfh0ocws  于 2021-05-29  发布在  Spark
关注(0)|答案(1)|浏览(529)

我是spark社区的新手。如果这个问题没有意义,请忽略。
我的pysparkDataframe只是在“排序”中花费了一小部分时间(毫秒),但是移动数据要花费很多时间(>14秒)。
说明:我有一个巨大的arrow recordbatches集合,它平均分布在我的所有工作节点的内存中(在plasma\u存储中)。目前,我正在主节点中收集所有这些recordbatches,合并它们,并将它们转换为一个single sparkDataframe。然后我对那个Dataframe应用排序函数。
sparkDataframe是一个集群分布式数据采集系统。
所以我的问题是:有没有可能从worker节点内存中所有已经分发的arrow recordbatches数据集合中创建一个sparkDataframe?因此,数据应该保留在各自工作节点的内存中(而不是将其带到主节点,合并,然后创建分布式Dataframe)。
谢谢!

zbq4xfa0

zbq4xfa01#

是的,你可以把数据储存在Spark里 cache ,每当您尝试获取数据时,它都会从缓存而不是源中获取数据。
请使用下面的扭结了解更多关于缓存的信息,
https://sparkbyexamples.com/spark/spark-dataframe-cache-and-persist-explained/where df.cache()是否为storedhttps://unraveldata.com/to-cache-or-not-to-cache/

相关问题