2016-08-02 13 views
-1

Ich habe ein unmarkiertes Dataset erstellt, das einige Spalten enthält. Die Werte in einer der Spalte sind Frankreich, Deutschland, Frankreich und Großbritannien.Filterung mit Scala und Apache Spark

Ich weiß, wie unter Verwendung von Code filtern und zählen.

val b =data.filter(_.contains("France")).count 

Allerdings bin ich nicht sicher, wie man andere Werte als Frankreich zählt.

ich unten Code versucht, aber es mir falsches Ergebnis

val a =data.filter(x=>x!="France").count 

PS geben: Meine Frage ein bisschen ähnlich wie Is there a way to filter a field not containing something in a spark dataframe using scala? ist, aber ich bin für einige einfachere Antwort suchen.

+0

Woher wissen Sie, dass es nicht korrekt ist? Gibt es die Anzahl aller Datensätze zurück? –

+0

Es gibt 5 statt 2 zurück – neoguy

+1

Was ist 'data' oder' _' in diesem Fall? Sie müssen prüfen, ob eine bestimmte Spalte einer Zeile in einem Datenrahmen nicht gleich "Frankreich" ist. Sie sollten nicht prüfen, ob eine Zeile "Frankreich" enthält. –

Antwort

1

Sie versuchen, diese Elemente zu filtern, die gleich "France" ist. Versuchen Sie, diese

val a=data.filter(!_.contains("France")).count 
1

Um cricket_007 ‚s Punkt sollte auf die richtige Zahl so etwas wie diese

val myDSCount = data.filter(row => row._1 != "France").count() 

Ich bin nicht sicher, welche Spalte Ihrer Daten sind in, so dass der row._1 ändern würde sein . Sie können Folgendes ausführen, um alle Ihre Spalten anzuzeigen:

data.printSchema