【发布时间】:2017-09-14 08:22:46
【问题描述】:
我使用 Spark 2.0 并希望更新/合并 DataFrame 中的行值。
我有两个 DataFrame(旧的和新的),我想合并它们,当旧 DataFrame 的行数多于新 DataFrame 时,将旧数据值设置为 0。
案例 1 合并
旧数据框:
## +---+----+----+
## |key|val1|val2|
## +---+----+----+
## | 1| aa| ab|
## | 2| bb| bc|
## +---+----+----+
新数据框:
## +---+----+----+
## |key|val1|val2|
## +---+----+----+
## | 1| aa| ab|
## | 2| bb| bb|
## | 3| cc| cc|
## +---+----+----+
结果:
## +---+----+----+
## |key|val1|val2|
## +---+----+----+
## | 1| aa| ab|
## | 2| bb| bb|
## | 3| cc| cc|
## +---+----+----+
案例 2 更新
旧数据框:
## +---+----+----+
## |key|val1|val2|
## +---+----+----+
## | 1| aa| ab|
## | 2| bb| bb|
## | 3| cc| cc|
## +---+----+----+
新数据框:
## +---+----+----+
## |key|val1|val2|
## +---+----+----+
## | 1| aa| ab|
## | 2| bb| bc|
## +---+----+----+
结果:
## +---+----+----+
## |key|val1|val2|
## +---+----+----+
## | 1| aa| ab|
## | 2| bb| bc|
## | 3| 00| 00|
## +---+----+----+
键在两种情况下是唯一的,在实际情况下,DataFrame 可以有很多列。
如何编写 Spark/Scala 代码在一个函数中实现这两种情况?
【问题讨论】:
-
您希望在每种情况下看到什么?
-
如何编写scala&spark代码在一个函数中实现这两种情况?
标签: apache-spark dataframe apache-spark-sql