我正试着理解火花hiveContext。当我们使用hiveContext编写查询时
sqlContext=new HiveContext(sc)
sqlContext.sql("select * from TableA inner join TableB on ( a=b) ")它是使用火花引擎还是蜂巢引擎?我相信上面的查询是用火花引擎执行的。但是如果是这样的话,我们为什么需要数据文件呢?
我们可以盲目地复制sqlContext.sql("")中的所有hive查询并运行,而无需使用数据格式。
对于DataFrames,我的意思是像这样的TableA.join(TableB, a === b),我们甚至可以使用TableA.join(TableB, a === b)命令执行聚合。有谁能澄清一下这个概念吗?如果使用dataframe联接比使用sqlContext.sql()连接有什么好处呢?联接只是一个例子。:)
发布于 2017-09-14 07:28:21
星火HiveContext在下面使用火花执行引擎(参见火花码 )。
火花中的解析器支持是可插拔的,HiveContext使用spark的HiveQuery解析器。
从功能上讲,您可以使用sql和Dataframes来完成任何事情。但是,dataframes为实现同样的结果提供了一种方便的方法。用户不需要编写SQL语句。
https://stackoverflow.com/questions/46211613
复制相似问题