1
nimmt diese meine CSV-Datei ist:Spark-Karte mit Bedingung reduzieren
attr1;attr2
11111;MOC
22222;MTC
11111;MOC
22222;MOC
33333;MMS
Ich mag die Anzahl der Vorkommen in der ersten Spalte, wenn attr2 = MOC haben. Wie folgt aus:
(11111,2)
(22222,1)
ich versucht habe:
val sc = new SparkContext(conf)
val textFile = sc.textFile(args(0))
val data = textFile.map(line => line.split(";").map(elem => elem.trim))
val header = new SimpleCSVHeader(data.take(1)(0))
val rows = data.filter(line => header(line,"attr1") != "attr1")
val attr1 = rows.map(row => header(row,"attr1"))
val attr2 = rows.map(row => header(row,"attr2"))
attr1.map(k => (k,1)).reduceByKey(_+_)
attr1.foreach (println)
wie kann ich hinzufügen, um den Zustand in meinem Code? das Ergebnis meines Code ist:
(11111,2)
(22222,2)
(33333,1)
die Konsole nichts angezeigt –