1

finde ich den folgenden Befehl:Spark-SQL - registriert temporäre Tabelle nicht

spark-shell --packages datastax:spark-cassandra-connector:1.6.0-s_2.10 

Dann hör ich den Zusammenhang mit:

sc.stop 

Dann laufe ich diesen Code in der REPL:

val conf = new org.apache.spark.SparkConf(true).set("spark.cassandra.connection.host", "127.0.0.1") 
val sc = new org.apache.spark.SparkContext(conf) 
val sqlContext = new org.apache.spark.sql.SQLContext(sc) 
val cc = new org.apache.spark.sql.cassandra.CassandraSQLContext(sc) 

cc.setKeyspace("ksp") 

cc.sql("SELECT * FROM continents").registerTempTable("conts") 

val allContinents = sqlContext.sql("SELECT * FROM conts").collect 

Und ich bekomme:

org.apache.spark.sql.AnalysisException: Table not found: conts; 

Der Schlüsselbereich ksp und die Tabelle continents sind in Cassandra definiert, also vermute ich, dass der Fehler nicht von dieser Seite ist.

(Funken 1.6.0,1.6.1)

Antwort

0

Weil Sie anderen Kontext verwenden Datenrahmen erstellen und SQL ausführen.

val conf = new 
org.apache.spark.SparkConf(true).set("spark.cassandra.connection.host", "127.0.0.1") 
val sc = new org.apache.spark.SparkContext(conf) 
val sqlContext = new org.apache.spark.sql.SQLContext(sc) 
val cc = new org.apache.spark.sql.cassandra.CassandraSQLContext(sc) 

cc.setKeyspace("ksp") 

cc.sql("SELECT * FROM continents").registerTempTable("conts") 

// use cc instead of sqlContext 
val allContinents = cc.sql("SELECT * FROM conts").collect