2015-06-05 2 views
0

Предположим, у меня есть эти документы, и я хочу, чтобы удалить дублирование:Сравнить документы и устранить дублирование в Спарк и Scala

buy sansa view sell product player charger world charge player charger receive 
oldest daughter teen daughter player christmas so daughter life line listen sooo hold 
thourghly sansa view delete song time wont wont connect-computer computer put time 
oldest daughter teen daughter player christmas so daughter life line listen sooo hold 
oldest daughter teen daughter player christmas so daughter life line listen sooo hold 

это выход:

buy sansa view sell product player charger world charge player charger receive 
oldest daughter teen daughter player christmas so daughter life line listen sooo hold 
thourghly sansa view delete song time wont wont connect-computer computer put time 

есть ли решение для этого в Scala и искры?

ответ

1

Вы, кажется, читаете файлы по линейному принципу, поэтому textFile будет правильно читать это в RDD строк, по одной строке на строку. После этого distinct уменьшит RDD до уникального набора.

sc.textFile("yourfile.txt") 
    .distinct 
    .saveAsTextFile("distinct.txt") 
0

Используя функцию reduceByKey, вы можете достичь своего требования.

Вы можете использовать этот код

val textFile = spark.textFile("hdfs://...") 
val uLine = textFile.map(line => (line, 1)) 
       .reduceByKey(_ + _).map(uLine => uLine._1) 
uLine.saveAsTextFile("hdfs://...") 

или вы можете использовать

val uLine = spark.textFile("hdfs://...").distinct 
uLine.saveAsTextFile("hdfs://...") 
Смежные вопросы