【问题标题】:How To access Hive Table to The spark如何访问 Hive Table 到火花
【发布时间】:2017-04-25 21:10:45
【问题描述】:

我是Spark 的新手,我正在尝试访问Hive 表到Spark

1) 创建 Spark 上下文

val hc=new HiveContext(sc)

val hivetable= hc.sql("Select * from test_db.Table")

我的问题是我将表格放入 Spark。

1) 为什么我们需要注册表格?

2) 我们可以直接执行SQL operations 仍然为什么我们需要Dataframe 函数 喜欢Join, Select, Filter...等?

SQL Query` 和 Dataframe 操作之间的操作有何不同

3) 什么是 Spark 优化?它是如何工作的?

【问题讨论】:

    标签: apache-spark-sql spark-dataframe


    【解决方案1】:
    1. 如果您使用 Spark HiveContext 访问 Hive 表,则无需注册临时表。将 DataFrame 注册为临时表允许您对其数据运行 SQL 查询。假设您正在从某个位置访问文件中的数据并且您希望对这些数据运行 SQL 查询。 那么您需要从 Row RDD 中输入createDataframe,您将在此 DataFrame 上注册临时表以运行 SQL 操作。要对该数据执行 SQL 查询,您需要在代码中使用 Spark SQLContext

    2. 两种方法都使用完全相同的执行引擎和内部数据结构。归根结底,一切都归结为开发人员的个人喜好。

      可以说 DataFrame 查询更容易以编程方式构建,并且 提供最小的类型安全性。

      普通 SQL 查询可以显着地更简洁且更易于理解。 还有可移植的,无需任何修改即可使用每种支持的语言。使用HiveContext,这些也可用于公开一些其他方式无法访问的功能(例如,没有 Spark 包装器的 UDF

      参考:Spark sql queries vs dataframe functions

      这是一个很好的阅读 reference 关于 Spark RDD 与 DataFrames 与 SparkSQL 之间的性能比较

    3. 显然我没有答案,我会让你在网上做一些研究并找出解决方案:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-03
      • 1970-01-01
      • 2017-07-05
      • 2021-12-04
      • 2018-02-15
      • 1970-01-01
      • 2018-03-31
      • 2011-01-22
      相关资源
      最近更新 更多