0
Ich versuche SQL-Abfrage nach dem Hinzufügen meiner Datenframe zu einer temporären Tabelle, aber jedes Mal zeigt Tabelle nicht gefunden.Spark SQL-Tabelle nicht gefunden nach RegisterTempTable
emp
ist der Name des Datenrahmens.
BEFEHLE:
scala> val sqlContext = new org.apache.spark.sql.SQLContext(sc)
sqlContext: org.apache.spark.sql.SQLContext = [email protected]
scala> import sqlContext.implicits._
import sqlContext.implicits._
scala> emp.registerTempTable("people")
scala> val teenagers = sqlContext.sql("SELECT name FROM people WHERE id >= 100 AND id <= 105")
java.lang.RuntimeException: Table Not Found: people
at scala.sys.package$.error(package.scala:27)
at org.apache.spark.sql.catalyst.analysis.SimpleCatalog$$anonfun$1.apply(Catalog.scala:111)
at org.apache.spark.sql.catalyst.analysis.SimpleCatalog$$anonfun$1.apply(Catalog.scala:111)
at scala.collection.MapLike$class.getOrElse(MapLike.scala:128)
at scala.collection.AbstractMap.getOrElse(Map.scala:58)
at org.apache.spark.sql.catalyst.analysis.SimpleCatalog.lookupRelation(Catalog.scala:111)
Wie Sie einen Datenrahmen erstellen -> emp. –
und Sie laufen hier, wo scala repl oder Spark-Shell? Welche Version von Funken verwendest du? – eliasah
Geben Sie an, wo Sie den Datenrahmen "emp" erstellen. Wird der Datenrahmen "emp" mit demselben "sqlContext erstellt: org.apache.spark.sql.SQLContext = [email protected]". Wenn nicht, wird es in diesem Kontext nicht sichtbar sein. Erstellen Sie den Datenrahmen, registrieren Sie die temporäre Tabelle und die Abfrage aus der Tabelle mit demselben Kontext. –