Zeppelin %sql 无法访问临时 table
Zeppelin %sql cannot access temporary table
我有三个 Zeppelin (0.6) 段落:
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
我认为这是因为 table 是 hivecontext 的一部分,而 sql 看不到它。我已经看到一些类似问题的解决方案,建议创建 sqlcontext 是问题所在,但我没有这样做。那么%sql段如何访问temptable呢?非常感谢任何指针。 (我想为漂亮的内置图表使用 %sql)。
解释器之间的互操作性仅在您使用 Zeppelin 为您提供的上下文时提供(如 sqlContext
)。在此处创建自己的上下文后:
val hc = new org.apache.spark.sql.hive.HiveContext(sc)
它没有以任何方式连接到 %sql
使用的上下文,Table not found
是预期的错误。
解决方法:使用sqlContext
创建并注册表。
我有三个 Zeppelin (0.6) 段落:
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
我认为这是因为 table 是 hivecontext 的一部分,而 sql 看不到它。我已经看到一些类似问题的解决方案,建议创建 sqlcontext 是问题所在,但我没有这样做。那么%sql段如何访问temptable呢?非常感谢任何指针。 (我想为漂亮的内置图表使用 %sql)。
解释器之间的互操作性仅在您使用 Zeppelin 为您提供的上下文时提供(如 sqlContext
)。在此处创建自己的上下文后:
val hc = new org.apache.spark.sql.hive.HiveContext(sc)
它没有以任何方式连接到 %sql
使用的上下文,Table not found
是预期的错误。
解决方法:使用sqlContext
创建并注册表。