Entsprechend der docs, die collect_set
und collect_list
Funktionen sollten in Spark SQL verfügbar sein. Aber ich kann es nicht zur Arbeit bringen. Ich benutze Spark 1.6.0 mit einem Docker image.Verwenden Sie collect_list und collect_set in Spark SQL
Ich versuche, dies in Scala zu tun:
import org.apache.spark.sql.functions._
df.groupBy("column1")
.agg(collect_set("column2"))
.show()
und den folgenden Fehler zur Laufzeit erhalten:
Exception in thread "main" org.apache.spark.sql.AnalysisException: undefined function collect_set;
es auch versuchen pyspark
verwenden, aber es funktioniert nicht auch. Die Dokumentation gibt an, dass diese Funktionen Aliase von Hive-UDAFs sind, aber ich kann diese Funktionen nicht aktivieren.
Wie behebt man das? Danke!
und was 1.6.1 in Dokumenten sais es, dass avialable "@since 1.6.0" aber ich bin immer noch, dass Fehler –
Hey @ zero323, ich versuche, die 'collect_list' Funktion in Spark 1.5.0 zu verwenden. Ich habe den Hive-Kontext erstellt, kann aber nicht herausfinden, wie die Funktion importiert wird. Dies kompiliert nicht: .groupBy (providerData ("PRVSEQ"), providerData ("PROV_NUM")) .agg (collect_list (regexp_replace (triggerReport ("match_type"), "_ (Individual | Practice) Model.", " "))) –
@VijayRatnagiri Es wurde in 1.6 eingeführt. Soweit ich mich erinnere, sollten Sie in der Lage sein, Raw SQL-Abfrage in 1.5 auf registrierte temporäre Tabelle zu verwenden. – zero323