0
我有三个齐柏林飞艇(0.6)段:齐柏林%SQL无法访问临时表
PARA1:
val hc = new org.apache.spark.sql.hive.HiveContext(sc)
val df = hc.sql("SELECT * FROM tweetsORC")
z.put("wds", df)
PARA2:
import org.apache.spark.sql.DataFrame
import sqlContext.implicits._
import org.apache.spark.sql.functions._
val df = z.get("wds").asInstanceOf[DataFrame]
df.select(explode($"filtered").as("value")).groupBy("value").count().sort(desc("count")).show(20, false)
df.registerTempTable("top20")
para3各个:
%sql
select * from top20
这给出了以下错误:
Table not found: top20
我认为这是因为表是hivecontext的一部分,sql看不到它。我看到一些类似的问题的解决方案,建议创建一个sqlcontext是问题,但我没有这样做。那么%sql段如何访问临时表?任何指针都非常感谢。 (我想用%sql作为漂亮的内置图表)。
感谢用户。你能再解释一下吗?这是否意味着我可以将val df = hc.sql(“SELECT * FROM tweetsORC”)更改为val df = sqlContext.sql(“SELECT * FROM tweetsORC”)? – schoon
是的,它的工作原理。谢谢! – schoon