我正在开发一个使用 Spark 和 scala 的项目,我对两者都是新手,但是在 stackoverflow 的帮助下,我已经完成了所有数据处理并将处理后的数据存储在 mysql 中。现在我终于遇到了一个问题,我不知道如何解决它。当我第一次处理数据时,我使用这种方法存储数据帧,并且第一个时间表是空的。
df.write.mode("append").jdbc("dburl", "tablename", "dbproperties");
Run Code Online (Sandbox Code Playgroud)
假设我处理的数据在数据库中看起来像这样。
id name eid number_of_visitis last_visit_date
1 John C110 12 2016-01-13 00:00:00
2 Root C111 24 2016-04-27 00:00:00
3 Michel C112 8 2016-07-123 00:00:00
4 Jonny C113 45 2016-06-10 00:00:00
Run Code Online (Sandbox Code Playgroud)
现在,名为“Root”且 eid 为“C111”的人于“2016-08-30 00:00:00”访问办公室 2 次,在处理此新数据后,我只需要更新数据库中的此人记录。我将如何做到这一点。现在更新后的表应该如下所示。
id name eid number_of_visitis last_visit_date
1 John C110 12 2016-01-13 00:00:00
2 Root C111 26 2016-08-30 00:00:00
3 Michel C112 8 2016-07-123 00:00:00
4 Jonny C113 45 2016-06-10 00:00:00
Run Code Online (Sandbox Code Playgroud)
我在这个表中有数百万条数据,如果我在 Spark DataFrame …
我有一个日期框架,其中有基于数字的唯一记录和重复记录。现在我想将数据帧分成两个数据帧。在第一个数据帧中,我只需要复制唯一的行,在第二个数据帧中,我想要所有重复的行。例如
id name number
1 Shan 101
2 Shan 101
3 John 102
4 Michel 103
Run Code Online (Sandbox Code Playgroud)
两个分割的数据框应该像
独特的
id name number
3 John 102
4 Michel 103
Run Code Online (Sandbox Code Playgroud)
重复
id name number
1 Shan 101
2 Shan 101
Run Code Online (Sandbox Code Playgroud)