spark RDD是如何映射到Cassandra表的?



我是Spark的新手,最近我看到一个代码以RDD格式将数据保存到Cassandra表。但是我不知道它是如何进行列映射的。它既不使用case类,也在代码中指定任何列名,如下所示:

rdd
.map(x => (x._1, x._2, x_3)) // x is a List here
.repartitionByCassandraReplica(keyspace, tableName)
.saveToCassandra(keyspace, tableName)

因为里面的x只是一个List[(Int, String, Int)],它不是case类,所以没有名称映射到Cassandra表。那么,Cassandra表中是否存在与我们在代码中指定的列顺序相匹配的特定顺序呢?

这个映射依赖于Cassandra表定义中列的顺序,如下所示:

  • 分区键列按指定顺序排列
  • 按指定顺序对列进行集群
  • 其余列按名称字母顺序排序

Spark Cassandra Connector依赖于表定义中的这些列将与Scala元组中的字段顺序匹配。您可以在TupleColumnMapper类的源代码中看到。

相关内容

  • 没有找到相关文章

最新更新