【问题标题】:What is the difference between a spark dataframe and a koalas dataframe?spark数据框和考拉数据框有什么区别?
【发布时间】:2021-10-05 19:21:50
【问题描述】:

我正在尝试了解考拉的内部运作方式。我使用的每个教程都向我展示了三个概念

  1. Spark 数据帧
  2. 内部框架
  3. 考拉数据框

据我了解,spark dataframe是典型的分布式spark dataframe。现在,这个 spark 数据框需要以 pandas 数据框的形式呈现,以使概念更加清晰,这就是内部框架概念的来源。内部框架保留了诸如 spark 列名 --> pandas 列名和有关信息的映射。指数等

让这张图片帮助我们理解:

看起来 koalas 数据帧只是一个逻辑概念,人们可以将其理解为 spark 数据帧的解析输出,内部帧提供解析器。它是 spark 数据帧的抽象层,有助于使 spark 数据帧适应 koalas API(熊猫风格)

对 koalas 数据帧的每个 API 调用都会创建一个新的内部帧,并且会创建或不创建新的 spark 数据帧。

但是,我也看到了这样的图像:

这就是我的困惑所在。创建或不创建新的考拉数据框是什么意思?考拉数据框到底是什么?以第一张图片为例,在应用kdf.dropna(...,inplace=True)之类的操作时,在改变内部frame和spark dataframe的同时保持koalas dataframe不变是什么意思?

【问题讨论】:

    标签: apache-spark pyspark apache-spark-sql spark-koalas


    【解决方案1】:

    太复杂了。

    Koalas 项目使数据科学家的工作效率更高 通过实现 pandas DataFrame API 与大数据交互 Apache Spark 的顶部。 pandas 是事实上的标准(单节点) Python 中的 DataFrame 实现,而 Spark 是事实上的 大数据处理标准。使用此软件包,您可以:

    使用 Spark 立即高效,无需学习曲线,如果您 对熊猫已经很熟悉了。拥有一个有效的代码库 使用 pandas(测试,较小的数据集)和 Spark(分布式 数据集)。

    只是 Spark 数据帧之上的一个 API。

    【讨论】:

      【解决方案2】:

      Koalas 的目标之一是在 Spark 之上提供 Pandas API。

      现在,B/W Spark DF 和 Pandas DF 存在一些潜在差异,为了消除这些差异,Koalas 使用了 InternalFrame。例如,Pandas DF 通过索引维护行顺序,而 Spark DF 不维护顺序。

      因此,InternalFrame 可以被认为是 Spark 和 Pandas 的桥梁(如果您从用户的角度来看的话)。

      正如您正确提到的: InternalFrame => Spark DF + 不可变元数据。

      而且,在底层,Koalas 根据用户通过 Koalas API 执行的操作维护一系列 InternalFrames。

      现在,对于每个操作,都不需要更改底层 Spark DF,例如设置一个新列作为索引,那么这样的操作只需要更新元数据。因此,对于这个考拉将创建一个新的 InternalFrame 状态,其中只包含更新的元数据。

      同样,如果您在 Koalas DF 上执行 dropna,那么它在引擎盖下的工作方式如下:

      当前状态 => Koalas DF --> InternalFrame (当前 Spark DF + 元数据)

      新状态 => 相同的考拉 DF 现在指向 --> 新的 InternalFrame (在 dropna + 元数据之后更新了 Spark DF)

      总的来说,我们可以说 Koalas API 使用 InternalFrame 的概念在 Spark 之上提供了类似于 Pandas 的 API。因此,只需极少的代码更改,用户就可以从单个节点切换到集群。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-31
        • 2018-11-19
        • 1970-01-01
        • 2018-07-24
        • 2020-12-07
        相关资源
        最近更新 更多