1

I 다음 명령을 실행 : 다음스파크 SQL - 임시 테이블 등록을 찾을 수 없습니다

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

내가 함께 문맥을 멈 춥니 다 :

: 다음

sc.stop 

나는 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 

그리고 얻을 수있는 것 :

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

키 스페이스 ksp 및 테이블 continents은 Cassandra에 정의되어 있으므로 오류가 그 측면에 있지 않은 것으로 판단됩니다. 당신이 dataframe를 만들기위한 다른 컨텍스트를 사용하고 SQL을 실행하기 때문에

(스파크 1.6.0,1.6.1)

답변

0

.

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