齐柏林飞艇%sql无法访问临时表
我有三段齐柏林飞艇(0.6): 第1段:齐柏林飞艇%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
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”)?