Spark HiveContext:Spark 引擎还是 Hive 引擎?

Spark HiveContext : Spark Engine OR Hive Engine?

我正在尝试了解 spark hiveContext。 当我们使用 hiveContext 编写查询时,例如

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

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

我们可以在不使用数据帧的情况下盲目复制 sqlContext.sql("") 和 运行 中的所有 Hive 查询。

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

Spark HiveContext 使用下面的 Spark 执行引擎参见 spark code

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

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