java.util.NoSuchElementException:在 table 中找不到列
java.util.NoSuchElementException: Columns not found in table
我的 cassandra table 小写列如下所示
CREATE TABLE model_family_by_id(
model_family_id int PRIMARY KEY,
model_family text,
create_date date,
last_update_date date,
model_family_name text
);
我的数据框架构是这样的
root
|-- MODEL_FAMILY_ID: decimal(38,10) (nullable = true)
|-- MODEL_FAMILY: string (nullable = true)
|-- CREATE_DATE: timestamp (nullable = true)
|-- LAST_UPDATE_DATE: timestamp (nullable = true)
|-- MODEL_FAMILY_NAME: string (nullable = true)
所以当插入到 cassandra 时,我遇到了以下错误
tabException in thread "main" java.util.NoSuchElementException: Columns not found in table sample_cbd.model_family_by_id: MODEL_FAMILY_ID, MODEL_FAMILY, CREATE_DATE, LAST_UPDATE_DATE, MODEL_FAMILY_NAME
at com.datastax.spark.connector.SomeColumns.selectFrom(ColumnSelector.scala:44)
如果我理解正确 the source code,Spark 连接器将列括在双引号中,因此它们区分大小写,并且与 CQL 定义中的名称不匹配。
您需要更改 DataFrame 的架构 - 为每一列使用 运行 withColumnRenamed
,或者为每一列使用 select
和 alias
。
我的 cassandra table 小写列如下所示
CREATE TABLE model_family_by_id(
model_family_id int PRIMARY KEY,
model_family text,
create_date date,
last_update_date date,
model_family_name text
);
我的数据框架构是这样的
root
|-- MODEL_FAMILY_ID: decimal(38,10) (nullable = true)
|-- MODEL_FAMILY: string (nullable = true)
|-- CREATE_DATE: timestamp (nullable = true)
|-- LAST_UPDATE_DATE: timestamp (nullable = true)
|-- MODEL_FAMILY_NAME: string (nullable = true)
所以当插入到 cassandra 时,我遇到了以下错误
tabException in thread "main" java.util.NoSuchElementException: Columns not found in table sample_cbd.model_family_by_id: MODEL_FAMILY_ID, MODEL_FAMILY, CREATE_DATE, LAST_UPDATE_DATE, MODEL_FAMILY_NAME
at com.datastax.spark.connector.SomeColumns.selectFrom(ColumnSelector.scala:44)
如果我理解正确 the source code,Spark 连接器将列括在双引号中,因此它们区分大小写,并且与 CQL 定义中的名称不匹配。
您需要更改 DataFrame 的架构 - 为每一列使用 运行 withColumnRenamed
,或者为每一列使用 select
和 alias
。