gpt4 book ai didi

apache-spark - Apache Spark SQLContext 与 HiveContext 有什么区别?

转载 作者:行者123 更新时间:2023-12-02 09:38:30 28 4
gpt4 key购买 nike

Apache Spark SQLContext 和 HiveContext 之间有什么区别?

一些消息来源说,由于 HiveContext 是 SQLContext 的超集,开发人员应该始终使用比 SQLContext 具有更多功能的 HiveContext。但是目前每个上下文的 API 大都相同。

  • SQLContext/HiveContext 在哪些场景中更有用?
  • 只有在使用 Hive 时 HiveContext 才更有用吗?。
  • 或者 SQLContext 是使用 Apache Spark 实现大数据应用程序所需要的全部吗?
  • 最佳答案

    Spark 2.0+

    Spark 2.0 提供 native 窗口函数 ( SPARK-8641 ) 并在解析和更好的 SQL 2003 合规性方面具有一些额外的改进,因此它对 Hive 实现核心功能的依赖显着减少,因此 HiveContext ( SparkSession 带有 Hive 支持)似乎不太重要。

    Spark < 2.0

    显然,如果你想使用 Hive,你必须使用 HiveContext .除此之外,目前(Spark 1.5)最大的不同是支持 window functions以及访问 Hive UDF 的能力。

    一般来说,窗口函数是一个非常酷的特性,可以用来以简洁的方式解决相当复杂的问题,而无需在 RDD 和 DataFrame 之间来回切换。性能仍然远非最佳,尤其是没有 PARTITION BY条款,但实际上并不是 Spark 特有的。

    关于 Hive UDF 现在不是一个严重的问题,但在 Spark 1.5 之前,许多 SQL 函数已经使用 Hive UDF 表达并且需要 HiveContext上类。
    HiveContext还提供了更健壮的 SQL 解析器。参见例如:py4j.protocol.Py4JJavaError when selecting nested column in dataframe using select statetment

    最后HiveContext需要启动 Thrift 服务器。
    HiveContext最大的问题是它带有大量的依赖项。

    关于apache-spark - Apache Spark SQLContext 与 HiveContext 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33666545/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com