Apache spark 带有Scala错误的DSE SearchAnalytics

Apache spark 带有Scala错误的DSE SearchAnalytics,apache-spark,cassandra,apache-spark-sql,datastax-enterprise,spark-cassandra-connector,Apache Spark,Cassandra,Apache Spark Sql,Datastax Enterprise,Spark Cassandra Connector,通过引用link,我试图在spark数据帧中查询cassandra表 val spark = SparkSession .builder() .appName("CassandraSpark") .config("spark.cassandra.connection.host", "127.0.0.1") .config("spark.cassandra.connection.port", "9042")

通过引用link,我试图在spark数据帧中查询cassandra表

val spark = SparkSession
          .builder()
          .appName("CassandraSpark")
          .config("spark.cassandra.connection.host", "127.0.0.1")
          .config("spark.cassandra.connection.port", "9042")
          .master("local[2]")
          .getOrCreate();
我正在使用的节点是SearchAnalytics节点 通过使用这个spark会话,我尝试了sql查询

val ss = spark.sql("select * from killr_video.videos where solr_query = '{\"q\":\"video_id:1\"}'")
该表上已启用搜索索引

运行程序后,我得到的错误如下

Exception in thread "main" org.apache.spark.sql.AnalysisException: Table or view not found: `killr_video`.`videos`; line 1 pos 14;
“项目[*] +-'未解决的关系
killr\u视频
视频

at org.apache.spark.sql.catalyst.analysis.package$AnalysisErrorAt.failAnalysis(package.scala:42)
at org.apache.spark.sql.catalyst.analysis.CheckAnalysis$$anonfun$checkAnalysis$1.apply(CheckAnalysis.scala:82)
at org.apache.spark.sql.catalyst.analysis.CheckAnalysis$$anonfun$checkAnalysis$1.apply(CheckAnalysis.scala:78)
at org.apache.spark.sql.catalyst.trees.TreeNode.foreachUp(TreeNode.scala:127)
at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$foreachUp$1.apply(TreeNode.scala:126)
at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$foreachUp$1.apply(TreeNode.scala:126)
at scala.collection.immutable.List.foreach(List.scala:392)
at org.apache.spark.sql.catalyst.trees.TreeNode.foreachUp(TreeNode.scala:126)
at org.apache.spark.sql.catalyst.analysis.CheckAnalysis$class.checkAnalysis(CheckAnalysis.scala:78)
at org.apache.spark.sql.catalyst.analysis.Analyzer.checkAnalysis(Analyzer.scala:91)
at org.apache.spark.sql.execution.QueryExecution.assertAnalyzed(QueryExecution.scala:52)
at org.apache.spark.sql.Dataset$.ofRows(Dataset.scala:66)
at org.apache.spark.sql.SparkSession.sql(SparkSession.scala:623)
at org.apache.spark.sql.SQLContext.sql(SQLContext.scala:691)

如何将Cassandra数据导入Spark?

从该错误消息中,您似乎正在使用独立Spark运行代码,而不是通过DSE分析(通过
DSE Spark提交
,或
DSE Spark

在这种情况下,您需要注册表-如何使用
dse客户端工具
spark-sql
注册所有表:

dse client-tool --use-server-config spark sql-schema --all > output.sql
spark-sql --jars byos-5.1.jar -f  output.sql
对于我的示例,它如下所示:

USE test;
CREATE TABLE t122
       USING org.apache.spark.sql.cassandra
       OPTIONS (
                keyspace "test",
                table "t122",
                pushdown "true");
下面是一个
solr\u query
的示例,如果我在以
dse spark
开始的spark shell中运行它,它将立即运行:

scala> val ss = spark.sql("select * from test.t122 where solr_query='{\"q\":\"t:t2\"}'").show
+---+----------+---+
| id|solr_query|  t|
+---+----------+---+
|  2|      null| t2|
+---+----------+---+

为了让您的生活更轻松,最好使用DSE分析,而不是。

主控应该是DSE群集<代码>dse://localhost或者您必须创建数据帧并使用
df.createOrReplaceTempView(“”)
如何提交您的申请-通过
dse spark提交