Spark RDD包含两个字段F1和F2,并通过运行SQL查询来填充。检查RDD中的字段是否包含唯一值
F1必须是唯一的,而F2没有这个约束。实际上,F2和F1之间有一对多的关系。一个F2值可以与几个F1值相关联,但不是相反的方式。
使用Scala,什么是最简单的函数式编程结构,用于对RDD进行检查,以确保从SQL返回的数据不违反此约束。
感谢
Spark RDD包含两个字段F1和F2,并通过运行SQL查询来填充。检查RDD中的字段是否包含唯一值
F1必须是唯一的,而F2没有这个约束。实际上,F2和F1之间有一对多的关系。一个F2值可以与几个F1值相关联,但不是相反的方式。
使用Scala,什么是最简单的函数式编程结构,用于对RDD进行检查,以确保从SQL返回的数据不违反此约束。
感谢
如果这是从SQL查询比这个人口一定是一个数据帧,比你可以简单地通过使用
df.select("order").distinct().count() == df.count()
如果你已经转换到RDD比你可以直接使用验证此在@pphilantrovert建议
df.groupBy(_._1).count == df.count
注:这是一个昂贵的任务,如果数据集较大
希望这有助于!
谢谢。使用DataFrame时,如何找到不唯一的特定条目? – user1052610
您可以按顺序分组,然后对订单进行计数,然后筛选出计数是否小于2,剩下的得分不是唯一的。 –
如果您打算使用RDD(不是DataFrames),那么使用下面的代码片段可以方便您使用。比方说,你RDD是inputRDD
有2场第一个将被用作关键第二的值:
inputRDD.countByKey.filter(_._2 > 1)
在没有重复的情况下,它应该返回空Map()
否则地图包括重复键(第一场)
行我希望你的RDD很小:D'rdd.groupBy(_._ 1).count == rdd.count' – philantrovert