Scala 如何使用Spark数据帧中的表达式合并重复行

Scala 如何使用Spark数据帧中的表达式合并重复行,scala,apache-spark,spark-dataframe,Scala,Apache Spark,Spark Dataframe,如何通过比较列删除重复项来合并2个数据帧 我有两个列名称相同的数据帧 a、 show() +-----+----------+--------+ |名称|日期|持续时间| +-----+----------+--------+ |鲍勃| 2015-01-13 | 4| |爱丽丝| 2015-04-23 | 10| +-----+----------+--------+ b、 show() +------+----------+--------+ |名称|日期|持续时间| +------+---

如何通过比较列删除重复项来合并2个数据帧

我有两个列名称相同的数据帧
a、 show()
+-----+----------+--------+
|名称|日期|持续时间|
+-----+----------+--------+
|鲍勃| 2015-01-13 | 4|
|爱丽丝| 2015-04-23 | 10|
+-----+----------+--------+
b、 show()
+------+----------+--------+
|名称|日期|持续时间|
+------+----------+--------+
|鲍勃| 2015-01-12 | 3|
|alice2 | 2015-04-13 | 10|
+------+----------+--------+
您可以在
groupBy()中执行
max(date)
。无需使用
df
加入
分组的

// In 1.3.x, in order for the grouping column "name" to show up,
val grouped = df.groupBy("name").agg($"name",sum("duration"), max("date"))

// In 1.4+, grouping column "name" is included automatically.
val grouped = df.groupBy("name").agg(sum("duration"), max("date"))
您可以在
groupBy()
中执行
max(date)
。无需使用
df
加入
分组的

// In 1.3.x, in order for the grouping column "name" to show up,
val grouped = df.groupBy("name").agg($"name",sum("duration"), max("date"))

// In 1.4+, grouping column "name" is included automatically.
val grouped = df.groupBy("name").agg(sum("duration"), max("date"))

您想要的最终结果是什么?Hi Srini,check final.show()我正在尝试通过将重复行中的持续时间相加并在date列中仅显示最新日期来消除相同名称的重复行。您想要的最终结果是什么?Hi Srini,check final.show()我正试图通过在重复行中求和持续时间,并在日期列中只显示最新日期来消除相同名称的重复行。谢谢,这很有效。我试着使用join思想,如果表中有其他列,我必须在执行时间和日期字段的计算后将它们合并到最终的表中。谢谢,这很有效。我尝试使用join,认为若表中有其他列,则在执行时间和日期字段中的计算后,必须将它们合并到最终表中。