Scala flatmap 通过 spark in loop 保存到 cassandra
Scala flatmap saving to cassandra via spark in loop
我用 Names{Real Test!, Real Test1!}
循环并在其中循环抛出天数(这里作为示例迭代仅 1 天),在这个循环中对数据进行一些操作,然后我 flatMap RDD(有 2 行)到5 行的 RDD。在 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 行时 - 在数据库中我只有 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 行?
如果主键是 (id,name,date) 那么这是预期的行为,因为具有相同主键的数据会覆盖现有数据。
我用 Names{Real Test!, Real Test1!}
循环并在其中循环抛出天数(这里作为示例迭代仅 1 天),在这个循环中对数据进行一些操作,然后我 flatMap RDD(有 2 行)到5 行的 RDD。在 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 行时 - 在数据库中我只有 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 行?
如果主键是 (id,name,date) 那么这是预期的行为,因为具有相同主键的数据会覆盖现有数据。