Spark RDD 写入 Cassandra

Spark RDD write to Cassandra

我有一个下面的 Cassandra Table 架构。

ColumnA Primary Key
ColumnB Clustering Key
ColumnC
ColumnD

现在,我有一个 Spark RDD,列的顺序如下 RDD[ColumnC, ColumnA, ColumnB, ColumnD]

因此,当我写入 Cassandra Table 时,我需要确保顺序正确。所以,我使用 SomeColumns

指定列顺序
rdd.saveToCassandra(keyspace,table,SomeColumns("ColumnA","ColumnB","ColumnC","ColumnD))

有什么方法可以将所有列名作为列表传递?我问的是因为我的目标 table 中有大约 140 列,并且无法将所有名称作为 SomeColumns 的一部分。因此,寻找更清洁的方法。

PS:我无法从 DataFrame 中写入它,我只是在寻找基于 RDD 的解决方案。

您可以使用以下语法将序列分解为参数列表:

SomeColumns(names_as_sequence: _*)

更新:

如果你有一个列名序列作为字符串,那么你需要做:

SomeColumns(names_as_string_seq.map(x => x.as(x)): _*)