Необходимо прочитать, а затем удалить дубликаты из нескольких файлов CSV в Spark Scala - PullRequest
0 голосов
/ 11 июля 2019

Я новичок в этом пространстве, у меня есть несколько разделенных файлов CSV, имеющих дубликаты записей. Я хочу прочитать файл CSV в коде Spark Scala и также удалить дубликаты во время чтения.

Я пробовал dropDuplicate() и read.format("csv") с опцией загрузки.

var df1 = thesparksession.read.format("csv").option("delimiter","|").option("header",true).load("path/../../*csv)
.withcolumn(col1)
df1.dropDuplicates().show()

если допустим, csv1 имеет значения

emp1 1000 nuu -1903.33
emp2 1003 yuu 1874.44

и csv2 имеет

emp1 1000 nuu -1903.33
emp4 9848 hee 1874.33

Мне нужна только одна запись с emp1, которая будет обрабатываться дальше.

ожидаемый результат:

emp1 1000 nuu -1903.33
emp2 1003 yuu 1874.44
emp4 9848 hee 1874.33

Ответы [ 2 ]

0 голосов
/ 12 июля 2019
dropDuplicates()

отлично работает.

val sourcecsv = spark.read.option("header", "true").option("delimiter", "|").csv("path/../../*csv")
sourcecsv.show()

+-----+-----+----+--------+
|empid|idnum|name|  credit|
+-----+-----+----+--------+
| emp1| 1000| nuu|-1903.33|
| emp2| 1003| yuu| 1874.44|
| emp4| 9848| hee| 1874.33|
| emp1| 1000| nuu|-1903.33|
| emp2| 1003| yuu| 1874.44|
+-----+-----+----+--------+


//dropDuplicates() on a dataframe works perfect as expected
sourcecsv.dropDuplicates().show()

+-----+-----+----+--------+
|empid|idnum|name|  credit|
+-----+-----+----+--------+
| emp1| 1000| nuu|-1903.33|
| emp4| 9848| hee| 1874.33|
| emp2| 1003| yuu| 1874.44|
+-----+-----+----+--------+

Пожалуйста, сообщите нам, если есть какие-либо другие проблемы.

0 голосов
/ 11 июля 2019

Основываясь на ваших входных данных, столбцы CSV разделены каналом, чтобы прочитать CSV в кадр данных, который вы можете сделать

 var df1 = sparkSession.read.option("delimiter","|").csv(filePath)

// Удалить дубликаты

   val result = df1.dropDuplicates

   result.show

Вывод:

    +----+----+---+--------+
    | _c0| _c1|_c2|     _c3|
    +----+----+---+--------+
    |emp1|1000|nuu|-1903.33|
    |emp4|9848|hee| 1874.33|
    |emp2|1003|yuu| 1874.44|
    +----+----+---+--------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...