齐柏林飞艇%sql无法访问临时表

齐柏林飞艇%sql无法访问临时表,sql,scala,apache-spark,hive,apache-zeppelin,Sql,Scala,Apache Spark,Hive,Apache Zeppelin,我有三段齐柏林飞艇(0.6): 第1段: val hc = new org.apache.spark.sql.hive.HiveContext(sc) val df = hc.sql("SELECT * FROM tweetsORC") z.put("wds", df) 第2段: import org.apache.spark.sql.DataFrame import sqlContext.implicits._ import org.a

我有三段齐柏林飞艇(0.6):

第1段:

val hc = new org.apache.spark.sql.hive.HiveContext(sc)
val df = hc.sql("SELECT * FROM tweetsORC")
z.put("wds", df)
第2段:

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")
第3段:

%sql
select * from top20
这会产生以下错误:

Table not found: top20

我假设这是因为该表是hivecontext的一部分,sql无法看到它。我见过一些类似问题的解决方案,这些解决方案建议创建sqlcontext是问题所在,但我没有这样做。那么%sql段落如何访问临时表呢?非常感谢您的指点。(我想用%sql来绘制漂亮的内置图形)。

只有当您使用齐柏林飞艇为您提供的上下文(如
sqlContext
)时,才能提供口译员之间的互操作性。在此处创建自己的上下文后:

val hc = new org.apache.spark.sql.hive.HiveContext(sc)
它没有以任何方式连接到
%sql
使用的上下文,而
未找到表是预期的错误


解决方案:使用
sqlContext
创建和注册表。

只有当您使用齐柏林飞艇为您提供的上下文时(如
sqlContext
),才能提供口译员之间的互操作性。在此处创建自己的上下文后:

val hc = new org.apache.spark.sql.hive.HiveContext(sc)
它没有以任何方式连接到
%sql
使用的上下文,而
未找到表是预期的错误


解决方案:使用
sqlContext
创建和注册表。

感谢用户。你能再解释一下吗?这是否意味着我可以将val df=hc.sql(“SELECT*fromTweetSorc”)更改为val df=sqlContext.sql(“SELECT*fromTweetSorc”)?谢谢用户。你能再解释一下吗?这是否意味着我可以将val df=hc.sql(“SELECT*fromTweetSorc”)更改为val df=sqlContext.sql(“SELECT*fromTweetSorc”)?