我正在尝试将Cassandra与Spark集成并面对以下问题。
问题:
com.datastax.spark.connector.util.ConfigCheck $ ConnectorConfigurationException:无效的配置变量 使用Spark Cassandra Connector时,只允许使用已知的spark.cassandra。*变量。 spark.cassandra.keyspace不是有效的Spark Cassandra Connector变量。 可能的比赛: spark.cassandra.sql.keyspace spark.cassandra.output.batch.grouping.key 在com.datastax.spark.connector.util.ConfigCheck $ .checkConfig(ConfigCheck.scala:50) 在com.datastax.spark.connector.cql.CassandraConnectorConf $ .apply(CassandraConnectorConf.scala:253) 在org.apache.spark.sql.cassandra.CassandraSourceRelation $ .apply(CassandraSourceRelation.scala:263) 在org.apache.spark.sql.cassandra.CassandraCatalog.org $ apache $ spark $ sql $ cassandra $ CassandraCatalog $$ buildRelation(CasandraCatalog.scala:41) 在org.apache.spark.sql.cassandra.CassandraCatalog $$ anon $ 1.load(CassandraCatalog.scala:26) 在org.apache.spark.sql.cassandra.CassandraCatalog $$ anon $ 1.load(CassandraCatalog.scala:23)
请找到以下版本的spark Cassandra和我正在使用的连接器。
Spark:1.6.0 卡珊德拉:2.1.17 使用的连接器:spark-cassandra-connector_2.10-1.6.0-M1.jar
以下是我用来连接来自spark的Cassandra的代码片段。
val conf: org.apache.spark.SparkConf = new SparkConf(true) \
.setAppName("Spark Cassandra") \
.set"spark.cassandra.connection.host", "abc.efg.lkh") \
.set("spark.cassandra.auth.username", "xyz") \
.set("spark.cassandra.auth.password", "1234") \
.set("spark.cassandra.keyspace","abcded")
val sc = new SparkContext("local[*]", "Spark Cassandra",conf)
val csc = new CassandraSQLContext(sc)
csc.setKeyspace("abcded")
val my_df = csc.sql("select * from table")
在这里,当我尝试创建DF时,我发现错误。我试过没有在conf中传递模式,但它试图访问默认架构,其中提到的用户无法访问。
JIRA已经开放和关闭。 https://datastax-oss.atlassian.net/browse/SPARKC-102
但是我遇到了这个问题。请告诉我是否需要使用最新的连接器来解决此问题。
提前致谢。
答案 0 :(得分:0)
重要信息在您发布的错误消息中[为便于阅读而格式化]:
无效的配置变量
使用Spark Cassandra连接器时,仅允许使用已知的spark.cassandra。*变量。
spark.cassandra.keyspace不是有效的Spark Cassandra Connector变量。
可能的匹配项:spark.cassandra.sql.keyspace
spark.cassandra.keyspace
不是连接器的可用属性。可在此处找到可用属性的完整列表:https://github.com/datastax/spark-cassandra-connector/blob/master/doc/reference.md
使用建议的spark.cassandra.sql.keyspace
可能会有些运气;否则,您可能只需要为使用连接器执行的每个Cassandra交互明确指定键空间。