简体   繁体   English

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

[英]Spark HiveContext : Spark Engine OR Hive Engine?

I am trying to understand spark hiveContext . 我正在尝试了解spark hiveContext when we write query using hiveContext like 当我们使用hiveContext编写查询时

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

Is it using Spark Engine OR Hive Engine?? 使用Spark Engine还是Hive Engine? I believe above query get executed with Spark Engine. 我相信上述查询可以通过Spark Engine执行。 But if thats the case why we need dataframes? 但是如果是这样,为什么我们需要数据框?

We can blindly copy all hive queries in sqlContext.sql("") and run without using dataframes. 我们可以在sqlContext.sql("")盲目复制所有配置单元查询,并且无需使用数据sqlContext.sql("")运行。

By DataFrames, I mean like this TableA.join(TableB, a === b) We can even perform aggregation using SQL commands. 对于DataFrames,我的意思是像这样的TableA.join(TableB, a === b)我们甚至可以使用SQL命令执行聚合。 Could any one Please clarify the concept? 请问有人可以澄清一下这个概念吗? If there is any advantage of using dataframe joins rather that sqlContext.sql() join? 如果使用数据sqlContext.sql()连接而不是sqlContext.sql()连接有什么好处? join is just an example. 加入只是一个例子。 :) :)

The Spark HiveContext uses Spark execution engine underneath see the spark code . Spark HiveContext在下面使用Spark执行引擎,请参见spark代码

Parser support in spark is pluggable, HiveContext uses spark's HiveQuery parser. spark中的解析器支持是可插入的,HiveContext使用spark的HiveQuery解析器。

Functionally you can do everything with sql and Dataframes are not needed. 从功能上讲,您可以使用sql进行所有操作,并且不需要数据框。 But dataframes provided a convenient way to achieve the same results. 但是数据帧提供了一种获得相同结果的便捷方法。 The user doesn't need to write a SQL statement. 用户不需要编写SQL语句。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM