Apache spark 使用ApacheSpark从大型数据集中查找重复项

Apache spark 使用ApacheSpark从大型数据集中查找重复项,apache-spark,pyspark,apache-spark-sql,spark-dataframe,apache-spark-mllib,Apache Spark,Pyspark,Apache Spark Sql,Spark Dataframe,Apache Spark Mllib,假设我们有一个大的csv/excel文件,其中有大量针对以下字段的记录 1.Email 2.First Name 3.Last Name 4.Phone Number etc. 在这些记录中,我们需要根据电子邮件、名字和姓氏的匹配条件来识别重复记录 对于重复计算,定义了一些自定义规则,对单个记录进行评分 比如说, 1.If email is exact match then score is 100,else 0. 2.For First Name,Last Name etc. the

假设我们有一个大的csv/excel文件,其中有大量针对以下字段的记录

1.Email 
2.First Name 
3.Last Name
4.Phone Number etc.
在这些记录中,我们需要根据电子邮件、名字和姓氏的匹配条件来识别重复记录

对于重复计算,定义了一些自定义规则,对单个记录进行评分

比如说,

1.If email is exact match then score is 100,else 0.

2.For First Name,Last Name etc. the edit distance is the score.
例如,假设搜索参数如下所示

Email:xyz@gmail.com,First Name: ABCD,Last Name:EFGH
行/记录如下所示

1.Email:xyz@gmail.com,First Name: ABC,Last Name:EFGH

2.Email:123xyz@gmail.com,First Name: ABC,Last Name:EFGH
对于记录1,分数=100(对于电子邮件)+75(对于名字)+100(对于姓氏)=275,即91.6%

对于记录2,分数=0(对于电子邮件)+75(对于名字)+100(对于姓氏)=175,即58%

重复检测阈值为75%,因此记录1是重复的,记录2不是。当我们有输入参数并使用它们来确定文件中的重复项时,实现起来相当简单

但是,当我们在一个文件中有所有记录,并且需要找出其中哪些是重复的记录时,如何应用此逻辑?

这里没有定义输入参数,我们需要将一条记录与所有其他记录进行比较,以找到评分相关性


如何在Apache Spark中实现这一点?

将数据加载到Spark中,并在电子邮件列上应用分组方式。。之后,检查行李并在“名字”和“姓氏”列上应用任何距离算法。这应该是相当直接的火花

val df = sc.textFile("hdfs path of data");

df.mapToPair("email", <whole_record>)
  .groupBy(//will be done based on key)
  .map(//will run on each bag )
val df=sc.textFile(“数据的hdfs路径”);
df.mapToPair(“电子邮件”)
.groupBy(//将根据密钥执行)
.map(//将在每个包上运行)

请您详细说明一下,可能是一些伪代码/示例代码?我无法完全理解它,我对Spark是新手。希望这能有所帮助。。虽然我不能帮你解决这个问题。。因为你的问题没有显示出你方在spark方面的任何努力。