【问题标题】:Spark dataframe creation through already distributed in-memory data sets通过已经分布的内存数据集创建 Spark 数据帧
【发布时间】:2020-10-06 04:01:42
【问题描述】:

我是 Spark 社区的新手。如果这个问题没有意义,请忽略。

我的 PySpark Dataframe 在“排序”中只花费一小部分时间(以毫秒为单位),但移动数据非常昂贵(> 14 秒)。

解释: 我有一个巨大的 Arrow RecordBatches 集合,它平均分布在我所有工作节点的内存中(在 Plasma_store 中)。目前,我正在将所有这些 RecordBatches 收集回我的主节点,合并它们,并将它们转换为单个 Spark Dataframe。然后我对该数据框应用排序功能。

Spark DataFrame 是一个集群分布式数据集合。

所以我的问题是: 是否可以从工作节点内存中所有已分发的 Arrow RecordBatches 数据集合中创建 Spark 数据帧?这样数据应该保留在各个工作节点的内存中(而不是将其带到主节点,合并,然后创建分布式数据帧)。

谢谢!

【问题讨论】:

    标签: apache-spark pyspark-dataframes apache-arrow


    【解决方案1】:

    是的,您可以将数据存储在 spark cache 中,每当您尝试获取数据时,它都会从缓存而不是源中获取您。

    请利用以下问题了解更多关于缓存的信息,
    https://sparkbyexamples.com/spark/spark-dataframe-cache-and-persist-explained/ where does df.cache() is stored https://unraveldata.com/to-cache-or-not-to-cache/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-27
      • 2017-03-28
      相关资源
      最近更新 更多