Cassandra 如何用Casssandra表列映射JavaBean字段?
我使用的是spark-sql.2.4.1v、datastax-java-cassandra-connector_2.11-2.4.1.jar和java8 我有卡桑德拉式的桌子 JavaBean如下所示 我有下面的spark代码,将数据保存到cassandra表中 >问题: 即使我使用注释进行映射,为什么会出现错误? 如何在不更改JavaBean字段名(即从companyId到company_id)的情况下修复此问题Cassandra 如何用Casssandra表列映射JavaBean字段?,cassandra,apache-spark-sql,datastax,datastax-enterprise,datastax-java-driver,Cassandra,Apache Spark Sql,Datastax,Datastax Enterprise,Datastax Java Driver,我使用的是spark-sql.2.4.1v、datastax-java-cassandra-connector_2.11-2.4.1.jar和java8 我有卡桑德拉式的桌子 JavaBean如下所示 我有下面的spark代码,将数据保存到cassandra表中 >问题: 即使我使用注释进行映射,为什么会出现错误? 如何在不更改JavaBean字段名(即从companyId到company_id)的情况下修复此问题 create company(company_id int PRIMARY_KE
create company(company_id int PRIMARY_KEY, company_name text);
@Table(name = "company")
class CompanyRecord(
@PartitionKey(0)
@Column(name="company_id")
Integer companyId;
@Column(name="company_name")
String companyName;
//getter and setters
//default & parametarized constructors
)
Dataset<Row> latestUpdatedDs = joinUpdatedRecordsDs.select("company_id", "company_name"); /// select from other source like xls sheet
Encoder<CompanyRecord> comanyEncoder = Encoders.bean(CompanyRecord.class);
Dataset<CompanyRecord> inputDs = latestUpdatedDs.as(comanyEncoder );
inputDs
.write()
.format("org.apache.spark.sql.cassandra")
.option("table","company")
.option("keyspace", "ks_one")
.mode(SaveMode.Append)
.save();
ERROR org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator - failed to compile: org.codehaus.commons.compiler.CompileException: File 'generated.java', Line 176, Column 75: A method named "toString" is not declared in any enclosing class nor any supertype, nor through a static import
org.codehaus.commons.compiler.CompileException: File 'generated.java', Line 176, Column 75: A method named "toString" is not declared in any enclosing class nor any supertype, nor through a static import
at org.codehaus.janino.UnitCompiler.compileError(UnitCompiler.java:12124)
Exception in thread "main" java.util.NoSuchElementException: Columns not found in table ks_one.company:
companyId, companyName
at com.datastax.spark.connector.SomeColumns.selectFrom(ColumnSelector.scala:44)
at com.datastax.spark.connector.writer.TableWriter$.apply(TableWriter.scala:385)