Ich habe drei Zeppelin (0,6) Die Absätze:Zeppelin% sql nicht temporäre Tabelle zugreifen
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
Dies gibt den folgenden Fehler:
Ich nehme an, das liegt daran, dass die Tabelle Teil des Hivecontext ist und sql es nicht sehen kann. Ich habe einige Lösungen zu ähnlichen Problemen gesehen, die vorschlagen, dass ein sqlcontext das Problem ist, aber ich habe das nicht getan. Wie kann der% sql-Absatz auf die temporäre Tabelle zugreifen? Alle Hinweise werden sehr geschätzt. (Ich möchte% sql für die schönen integrierten Graphen verwenden).
Danke Benutzer. Kannst du etwas weiter erklären? Bedeutet das, dass ich einfach val df = hc.sql ("SELECT * FROM tweetsORC") zu val df = sqlContext.sql ("SELECT * FROM tweetsORC") ändern kann? – schoon
Ja, das funktioniert. Vielen Dank! – schoon