Spark Cassandra列表数据类型映射

时间:2015-03-24 14:53:05

标签: scala cassandra apache-spark

我开始用Cassandra测试Spark。 我从Cassandra获取数据,它有两列(主键,设置)。

val sc = new SparkContext("spark://172.31.32.224:7077","test", conf)
val rdd = sc.cassandraTable("test", "table").select("pk", "lists")
.map(l => (l.get[String]("pk"), l.getList[String]("lists")))

但是此代码正在映射(String, Seq[String]) 我想打破Seq[String]并与" pk"成对,例如

((pk1, list(1)), (pk1, list(2), (pk1, list(3)))

有办法吗?

1 个答案:

答案 0 :(得分:3)

map替换为flatmap并创建一组对:

.flatMap{l => 
    val pk = l.get[String]("pk")
    l.getList[String]("lists").map(item => (pk,List(item)))
}