Ich bin versucht, eine Spalte in einer Spark-Datenrahmen zu aggregieren Scala mit, etwa so:Wie verwende ich countDistinct in Spark/Scala?
import org.apache.spark.sql._
dfNew.agg(countDistinct("filtered"))
aber ich den Fehler:
error: value agg is not a member of Unit
Kann mir jemand erklären, warum?
EDIT: um zu klären, was ich versuche zu tun: Ich habe eine Spalte, die ein String-Array ist, und ich möchte die verschiedenen Elemente über alle Zeilen zählen, nicht interessiert an anderen Spalten. Daten:
+------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
|racist|filtered |
+------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
|false |[rt, @dope_promo:, crew, beat, high, scores, fugly, frog, , https://time.com/sxp3onz1w8] |
|false |[rt, @axolrose:, yall, call, kermit, frog, lizard?, , https://time.com/wdaeaer1ay] |
Und ich möchte, gefiltert zu zählen, geben:
rt:2, @dope_promo:1, crew:1, ...frog:2 etc
für die Aggregatfunktion müssen Sie groupBy zuerst anwenden. Dies kann Ihnen helfen https://stackoverflow.com/questions/33500816/how-to-use-countdistinct-in-scala-with-spark –
Mögliche Duplikat von [Wie countDistinct in Scala mit Spark zu verwenden?] (https://stackoverflow.com/questions/33500816/how-to-use-countdistinct-in-scala-with-spark) –
OK vielleicht versuche ich, die falsche Funktion zu verwenden. Ich habe eine Spalte mit ist ein String-Array, und ich möchte die verschiedenen Elemente über alle Zeilen zählen, nicht interessiert an anderen Spalten. Ich werde meine Frage bearbeiten, um dies zu reflektieren. – schoon