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)): _*)
我有一个下面的 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)): _*)