【问题标题】:Spark DataFrame vs sqlContextSpark DataFrame 与 sqlContext
【发布时间】:2016-11-24 08:59:44
【问题描述】:

为了进行比较,假设我们有一个表“T”,其中包含两列“A”、“B”。我们还有一个在一些 HDFS 数据库中运行的 hiveContext。我们制作一个数据框:

理论上,以下哪个更快:

sqlContext.sql("SELECT A,SUM(B) FROM T GROUP BY A")

df.groupBy("A").sum("B")

其中“df”是指 T 的数据帧。对于这些简单类型的聚合操作,有什么理由让人们更喜欢一种方法而不是另一种方法?

【问题讨论】:

    标签: apache-spark hive pyspark


    【解决方案1】:

    Spark 开发人员为优化付出了巨大努力。 DataFrame Scala 和 DataFrame SQL 之间的性能无法区分。即使对于 DataFrame Python,不同之处在于何时将数据收集到驱动程序。

    它打开了一个新世界

    It doesn't have to be one vs. another

    我们可以随意选择自己喜欢的方式

    databricks发布的性能对比

    【讨论】:

      【解决方案2】:

      不,这些应该归结为相同的执行计划。 Spark SQL 引擎下面使用相同的优化引擎,即催化剂优化器。您始终可以通过查看 spark UI 自行检查,甚至在生成的 DataFrame 上调用 explain

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-19
        • 1970-01-01
        • 2017-01-16
        • 1970-01-01
        相关资源
        最近更新 更多