java.util.NoSuchElementException:在 Cassandra Spark 的 table demo.usertable 中找不到列 ID
java.util.NoSuchElementException: Column not found ID in table demo.usertable in Cassandra Spark
我正在尝试使用 Spark-cassandra-Connector 将 RDD[CassandraRow] 写入现有的 Cassandra Table。这是我的一段代码
val conf = new SparkConf().setAppName(getClass.getSimpleName)
.setMaster("local[*]")
.set("spark.cassandra.connection.host", host)
val sc = new SparkContext("local[*]", keySpace, conf)
val rdd = sc.textFile("hdfs://hdfs-host:8020/Users.csv")
val columns = Array("ID", "FirstName", "LastName", "Email", "Country")
val types = Array("int", "string", "string", "string", "string")
val crdd=rdd.map(p => {
var tokens = p.split(",")
new CassandraRow(columns,tokens)
})
val targetedColumns = SomeColumns.seqToSomeColumns(columns)
crdd.saveToCassandra(keySpace, tableName, targetedColumns, WriteConf.fromSparkConf(conf))
当我运行这段代码时,我得到以下异常
Exception in thread "main" java.util.NoSuchElementException: Column not found ID in table demo.usertable
这里是 table
的实际架构
CREATE TABLE usertable (
id int,
country text,
email text,
firstname text,
lastname text,
PRIMARY KEY ((id))
)
有什么建议吗?
谢谢
键空间、table 和列名在 Cassandra 中区分大小写。您是否尝试过调整代码以使用与 table 定义相同的大小写? (例如使用 'id' 而不是 'ID')。
我正在尝试使用 Spark-cassandra-Connector 将 RDD[CassandraRow] 写入现有的 Cassandra Table。这是我的一段代码
val conf = new SparkConf().setAppName(getClass.getSimpleName)
.setMaster("local[*]")
.set("spark.cassandra.connection.host", host)
val sc = new SparkContext("local[*]", keySpace, conf)
val rdd = sc.textFile("hdfs://hdfs-host:8020/Users.csv")
val columns = Array("ID", "FirstName", "LastName", "Email", "Country")
val types = Array("int", "string", "string", "string", "string")
val crdd=rdd.map(p => {
var tokens = p.split(",")
new CassandraRow(columns,tokens)
})
val targetedColumns = SomeColumns.seqToSomeColumns(columns)
crdd.saveToCassandra(keySpace, tableName, targetedColumns, WriteConf.fromSparkConf(conf))
当我运行这段代码时,我得到以下异常
Exception in thread "main" java.util.NoSuchElementException: Column not found ID in table demo.usertable
这里是 table
的实际架构CREATE TABLE usertable (
id int,
country text,
email text,
firstname text,
lastname text,
PRIMARY KEY ((id))
)
有什么建议吗? 谢谢
键空间、table 和列名在 Cassandra 中区分大小写。您是否尝试过调整代码以使用与 table 定义相同的大小写? (例如使用 'id' 而不是 'ID')。