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 语句。
我正在尝试了解 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 语句。