在Spark-shell中使用hive上下文时无法注册临时表

时间:2016-06-13 15:57:40

标签: apache-spark apache-spark-sql spark-dataframe

我在代码下面运行,但是在hive上下文中注册临时表时返回一个void数据帧。

enter image description here

2 个答案:

答案 0 :(得分:1)

您对自己的代码的解释存在问题。

reg

  

但是在注册temp时正在返回一个void数据帧   表格在蜂巢语境中。

您的代码首先创建数据帧并使用临时表进行注册,然后返回registerTempTable的结果并将其分配给df3。 您没有将read.json()的结果分配给df3。

如果您想要Datafrme和Temp表, 然后你应该跟随Vijay提到。

您的代码的含义: (创建一个数据帧并将其注册为临时表推文,并将registerTempTable的返回值分配给df3) 因此,df3将返回registerTempTable的值,而不是read.json。

Vijay代码的含义: //创建一个数据框并将其分配给df3 val df3 = hctx.read.json(“/ development / sr3 / data / test / testweet.json”)

//将df3注册到临时表 df3.registerTempTable( “鸣叫”)

执行以下任一操作:

val df3 = hctx.read.json("/development/sr3/data/test/testweet.json"); df3.registerTempTable("tweet")

OR

val df3 = hctx.read.json("/development/sr3/data/test/testweet.json").registerTempTable("tweet").show()返回最终的DF。再次,但没有意义。

总的来说,我希望你明白这一点。你需要确保你最终获得的回报是重要的

答案 1 :(得分:0)

你可以试试吗

val df3 = hctx.read.json("/development/sr3/data/test/testweet.json")
df3.registerTempTable("tweet")
sqlContext.sql("SELECT count(*) FROM tweet")