spark按某几列删除dataframe重复行

网友投稿 800 2022-10-21

spark按某几列删除dataframe重复行

spark按某几列删除dataframe重复行

新建一个 ​​dataframe​​ :

val conf = new SparkConf().setAppName("TTyb").setMaster("local")val sc = new SparkContext(conf)val spark = new SQLContext(sc)val dataFrame = spark.createDataFrame(Seq( (1, 1, "2", "5"), (2, 2, "3", "6"), (2, 2, "35", "68"), (2, 2, "34", "67"), (2, 2, "38", "68"), (3, 2, "36", "69"), (1, 3, "4", null))).toDF("id", "label", "col1", "col2")

想根据 ​​id​​​ 和 ​​lable​​​ 来删除重复行,即删掉 ​​id=2​​​ 且 ​​lable=2​​​ 的重复行。利用 ​​distinct​​ 无法删除

dataframe.distinct().show()+---+-----+----+----+| id|label|col1|col2|+---+-----+----+----+| 1| 1| 2| 5|| 2| 2| 3| 6|| 2| 2| 35| 68|| 2| 2| 34| 67|| 2| 2| 38| 68|| 3| 2| 36| 69|| 1| 3| 4|null|+---+-----+----+----+

利用 ​​dropDuplicates​​​ 可以根据 ​​ID​​ 来删除:

dataFrame.dropDuplicates("id","label").show()+---+-----+----+----+| id|label|col1|col2|+---+-----+----+----+| 2| 2| 3| 6|| 1| 1| 2| 5|| 1| 3| 4|null|| 3| 2| 36| 69|+---+-----+----+----+

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:xBehave.net - 一个BDD/TDD框架基于xUnit.net
下一篇:IDEA自定义Maven archetype的方法步骤
相关文章

 发表评论

暂时没有评论,来抢沙发吧~