2

我想了解 spark hiveContexthiveContext当我们使用like编写查询时

sqlContext=new HiveContext(sc)
sqlContext.sql("select * from TableA inner join TableB on ( a=b) ")

它是使用 Spark 引擎还是 Hive 引擎?我相信上面的查询是用 Spark 引擎执行的。但如果是这样的话,为什么我们需要数据框?

我们可以在sqlContext.sql("")不使用数据帧的情况下盲目地复制所有配置单元查询并运行。

通过 DataFrames,我的意思是这样TableA.join(TableB, a === b) 我们甚至可以使用 SQL 命令执行聚合。任何人都可以澄清这个概念吗?如果使用数据框连接而不是sqlContext.sql()连接有什么好处?加入只是一个例子。:)

4

1 回答 1

3

Spark HiveContext 使用 Spark 执行引擎,请参阅下面的spark 代码

spark 中的解析器支持是可插拔的,HiveContext 使用 spark 的 HiveQuery 解析器。

从功能上讲,您可以使用 sql 完成所有操作,并且不需要 Dataframe。但是数据框提供了一种方便的方法来实现相同的结果。用户不需要编写 SQL 语句。

于 2017-09-14T07:28:21.313 回答