Scala flatmap通过spark in loop保存到cassandra

时间:2016-07-25 07:25:08

标签: apache-spark cassandra flatmap

我有Names{Real Test!, Real Test1!}的循环,并在其中循环抛出天(此处示例迭代仅为1天),在此循环中使用数据进行一些操作,然后将flatMap RDD(带2行)转换为RDD with 5行。在collect().foreach(println)它给了我这个:

(Real Test!,2016-07-25,session_end,63)
(Real Test!,2016-07-25,app_open,63)

代表名字 - 和

(Real Test1!,2016-07-25,app_open,63)
(Real Test1!,2016-07-25,app_install,0)
(Real Test1!,2016-07-25,session_end,0)

第二名。当我在循环中尝试saveToCassandra所有5行时 - 在DB中我只有最后一行flatMap。

id | name        | date      | count | event
1  | Real Test!  |2016-07-25 |  63  | session_end
2  | Real Test1! |2016-07-25 |  0   | session_end

为什么它只保存flatMap中的最后一行,以及如何保存所有5行?

1 个答案:

答案 0 :(得分:0)

如果主键是(id,name,date),那么这是预期的行为,因为具有相同主键的数据会覆盖现有数据。