【问题标题】:Cassandra Scala Spark - saving RDD to CassandraCassandra Scala Spark - 将 RDD 保存到 Cassandra
【发布时间】:2016-01-30 23:46:10
【问题描述】:

我有以下 RDD

RDD[(String, Seq[((String, Double), Int)])]

一个例子是:

RDD["a", Seq[(("b", 2.0), 1), (("c", 3.0), 2)]]

我想使用以下架构插入到我的 Cassandra 表中

String (PK), String, Double, Int

最后,对于给定的示例,我的数据库中将包含以下内容

"a", "b", 2.0, 1
"a", "c", 3.0, 2

执行此操作的 Scala 代码是什么?我尝试使用saveToCassandra,但我的输入不是RDD[(String, String, Double, Int)] 的形式。我应该先把它弄平吗?

【问题讨论】:

    标签: scala cassandra apache-spark


    【解决方案1】:

    您只需要flatMap:

    import org.apache.spark.rdd.RDD
    
    val rdd: RDD[(String, Seq[((String, Double), Int)])] = ???
    val flattened: RDD[(String, String, Double, Int)] = rdd.flatMap{
      case (k, vs) => vs.map{case ((v1, v2), v3) => (k, v1, v2, v3)}}
    

    【讨论】:

      猜你喜欢
      • 2015-03-06
      • 2017-04-10
      • 2020-07-27
      • 1970-01-01
      • 1970-01-01
      • 2018-03-11
      • 2016-05-02
      • 2017-06-26
      • 2019-11-12
      相关资源
      最近更新 更多