2016-06-19 16 views
2

Ich habe einen Datenrahmen, die wie folgt aussieht:Wie anwenderdefinierte Funktion auf jede Teilmenge anwenden, die von einer Gruppe durch Operation in Apache Spark gebildet wird?

[ID_number,cust_number,feature1,feature2,feature3,....] 

Jetzt möchte ich eine Abfrage schreiben, die Gruppen von ID_NUMBER und eine benutzerdefinierte Funktion gilt für die Untergruppen

[cust_number,feature1,feature2,feature3,......] 

von jeweils gruppiert ID_number Ich muss Machine Learning-Algorithmen auf die Funktionen anwenden und die Gewichte irgendwie speichern.

Wie mache ich das mit Apache Spark DataFrames (mit Scala)?

+3

Mögliches Duplikat von [Wie kann ich eine benutzerdefinierte Aggregatfunktion in Spark SQL definieren und verwenden?] (Http://stackoverflow.com/questions/32100973/how-can- i-define-and-use-a-user-defined-aggregate-funktion-in-spark-sql) – zero323

Antwort

0

Sie können so etwas (pyspark) tun.

schema_string = "cust_number, feature1, feature2, Feature3"

Felder = [StructField (field_name, String(), True) für field_name in schema_string.split ("")]

schema = StructType (Felder) df = sql_context.createDataFrame (group_by_result_rdd, schema);

Hinweis: Hier gehe ich davon aus, dass alle Features vom Typ String sind. API-Dokumente für andere Datentypen anzeigen