2016-12-03 3 views
4

Also habe ich einen Funken Datenrahmen haben, die wie folgt aussieht:GroupByKey und erstellen Listen von Werten pyspark SQL Datenrahmen

a | b | c 
5 | 2 | 1 
5 | 4 | 3 
2 | 4 | 2 
2 | 3 | 7 

Und ich möchte Gruppe von Spalte eine, erstellen Sie eine Liste von Werten aus der Spalte b und vergesse c. Der Ausgang Datenrahmen wäre:

a | b_list 
5 | (2,4) 
2 | (4,3) 

Wie würde ich mich darüber mit einem pyspark SQL-Datenrahmen zu tun?

Vielen Dank! :)

Antwort

9

Hier sind die Schritte, die Datenrahmen zu erhalten.

>>> from pyspark.sql import functions as F 
>>> 
>>> d = [{'a': 5, 'b': 2, 'c':1}, {'a': 5, 'b': 4, 'c':3}, {'a': 2, 'b': 4, 'c':2}, {'a': 2, 'b': 3,'c':7}] 
>>> df = spark.createDataFrame(d) 
>>> df.show() 
+---+---+---+ 
| a| b| c| 
+---+---+---+ 
| 5| 2| 1| 
| 5| 4| 3| 
| 2| 4| 2| 
| 2| 3| 7| 
+---+---+---+ 

>>> df1 = df.groupBy('a').agg(F.collect_list("b")) 
>>> df1.show() 
+---+---------------+ 
| a|collect_list(b)| 
+---+---------------+ 
| 5|   [2, 4]| 
| 2|   [4, 3]| 
+---+---------------+ 
+0

Genau das, was ich brauche! Vielen Dank. Könnten Sie einige Ressourcen vorschlagen, um besser zu werden? – user2253546

+0

Ich habe nicht Ihre Frage in Bezug auf Ressourcen. Bitte akzeptieren Sie die Antwort, wenn es Ihr Problem behebt, so dass es für andere hilfreich sein wird. Vielen Dank. – abaghel

+0

@ user2253546 Sie doc lesen kann. hier https://spark.apache.org/docs/1.6.2/api/java/org/apache/spark/sql/functions.html, viele nützliche SQL-Funktionen. –

Verwandte Themen