Ich bin ein Neuling in Spark/Scala. Das ist, was ich tue das erste Quartil einer CSV-Dateiersten Quartil für eine numerische Spalte in Spark berechnen
val column= sc.textFile("test.txt").map(_.split(",")(2)).flatMap(_.split(",")).map((_.toDouble))
val total = column.count.toDouble
val upper=(total+1)/4
val upper2= scala.math.ceil(upper).toInt
Ich bin nicht wirklich sicher zu berechnen, wie die Spalte zu sortieren andere als ein Schlüsselwertpaar hinzuzufügen. alles, was ich brauche, ist die letzten 2 Werte für die Quartile zu nehmen, nachdem sie sortiert sind. Aber ich bin gezwungen, ein Schlüsselwertpaar zu erstellen.
val quartiles = column.map((_,1)).sortByKey(true).take(upper2)
val first_quartile =0
if(upper % upper.toInt >0){
first_quartile = quartiles(upper.toInt-1)
}else{
first_quartile = (quartiles(upper2-1) +(quartiles(upper2-2))/2
}
Das funktioniert, aber es wird mich mit einem lästigen Schlüsselwertpaar verlassen. Wie kann ich zurück zu nur 1 Spalte anstelle von 2 (z. B. das Schlüssel-Wert-Paar)
Sie können die Dummy-Werte über 'rdd.keys' verwerfen. –
Gibt es einen Grund/eine Anforderung, Spark zu verwenden? – maasg
nicht wirklich eine Anforderung, gerade erst zu lernen, Funken und Scala. es ist böse schnell. : D – user2773013