-4

Предположим, что у нас есть большой файл csv/excel, где имеется большое количество записей против следующих полей.Поиск дубликатов из большого набора данных с использованием Apache Spark

1.Email 
2.First Name 
3.Last Name 
4.Phone Number etc. 

Среди этих записей, мы должны определить дубликаты записей с точки зрения соответствия критериям Email, Имя и Фамилия.

Для повторного расчета определены некоторые пользовательские правила, которые дают оценку против отдельной записи.

Например,

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:[email protected],First Name: ABCD,Last Name:EFGH 

Ряды/записи, как

1.Email:[email protected],First Name: ABC,Last Name:EFGH 

2.Email:[email protected],First Name: ABC,Last Name:EFGH 

Для record1, оценка = 100 (для электронной почты) + 75 (для имени) + 100 (для фамилии) = , т.е. 91,6%

Для record2, оценка = 0 (для электронной почты) + 75 (для имени) + 100 (для Фамилии) = , т.е. 58%

Дублированных порог обнаружения составляет 75%, поэтому запись 1 дублируется, а запись 2 - нет. Это довольно просто реализовать, когда мы вводим параметры ввода и используем их, мы хотим определить дубликаты из файла.

Но как применить эту логику, когда у нас есть все записи в файле, и для всех них нам нужно выяснить, какие дубликаты?

Здесь нет входного параметра, и нам нужно сравнить одну запись со всеми другими записями, чтобы найти релевантность баллов.

Как достичь этого в Apache Spark?

ответ

0

Загрузите данные в искру и примените группу по столбцу электронной почты .. после этого проверьте сумку и примените любой алгоритм расстояния для столбцов имени и фамилии. Это должно быть довольно прямолинейным в искры

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) 
+0

Не могли бы вы рассказать подробнее об этом, может быть, с некоторым псевдо/образцом кода? Я не мог полностью это понять, я новичок в Спарке. – Soumen

+0

обновлен с очень высоким кодом уровня –

+0

надеюсь, что это поможет ... хотя я не думаю, чтобы помочь вам с этим .. поскольку ваш вопрос не показал никаких усилий с вашей стороны в искру. –