Ich wurde beauftragt, die am häufigsten verwendeten Strings in einer riesigen Datei (Gigabyte) zu finden. Ich habe das folgende Funke-Programm geschrieben, um RDD in der Datei zu erstellen.Top N meist in riesigen Liste verwendet
val conf = new Sparkconf() //initializing sparkConf
val sc = new SparkContext(conf) //initializing SparkContext
val input = sc.textfile("..../input path") //load the input path
val words = input.flatMap(line=>line.split("")) //split by words
val counts = words.map(word=>(word, reducebyKey{case(x,y) => x+y}) //reducebykey to count the number of repeating words
val topcount = counts.top(5) //select top 5
Doch diese Top-5 abruft mir nicht die am häufigsten verwendete. Gibt nur die Top-Elemente nach Flatmap zurück.
Wenn ich, kann eine einzelne Datei zu analysieren (auch Gigabyte), ist Funke sehr wahrscheinlich völlig übertrieben, und die gute alte bash ist oft ein Einzeiler schnelle Lösung. – C4stor