答案 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")