我有一个下面的Cassandra Table模式。
ColumnA Primary Key
ColumnB Clustering Key
ColumnC
ColumnD
现在,我有一个带有列顺序的Spark RDD RDD [ColumnC,ColumnA,ColumnB,ColumnD]
因此,当我写Cassandra表时,我需要确保顺序正确。所以,我要使用SomeColumns指定列的顺序
rdd.saveToCassandra(keyspace,table,SomeColumns("ColumnA","ColumnB","ColumnC","ColumnD))
有什么办法可以将所有列名作为列表传递吗?我问这是因为我的目标表中大约有140个列,并且不能给出所有名称作为SomeColumns的一部分。因此,正在寻找一种更清洁的方法。
PS:我无法从DataFrame编写它,我只在寻找基于RDD的解决方案。
答案 0 :(得分:1)
您可以使用以下语法将序列分解为参数列表:
SomeColumns(names_as_sequence: _*)
更新:
如果您有一系列的列名作为字符串,那么您需要这样做:
SomeColumns(names_as_string_seq.map(x => x.as(x)): _*)