2017-07-18 4 views
0

私のデータは以下の通りです。パンダで It has three attributes: location, date, and student_id.同値グループyby()。PySparkのカテゴリ値のユニーク()

、Iは、異なる日付で、各位置を表示すること

GROUPBY([ '場所'、 '日付'])[ 'STUDENT_ID']ユニーク()

を行うことができ学生は同時にそこで勉強します。

私の質問は、同じ情報を抽出するためにPySparkで同じgroupbyを実行する方法です。ありがとうございました。

(location, date, student_id) 

はあなたが行うことができます:

答えて

0
あなたはそれを成し遂げるためにpysparkでcollect_setを使用することができます

df.groupby('location','date').agg(F.collect_set('student_id')).show() 

+--------+----------+-----------------------+ 
|location|  date|collect_set(student_id)| 
+--------+----------+-----------------------+ 
| 18250|2015-01-04|    [347416]| 
| 18253|2015-01-02|  [167633, 188734]| 
| 18250|2015-01-03|    [363796]| 
+--------+----------+-----------------------+ 
0

は、あなたのデータを仮定すると、フォーム内の行を持っている

data 
.map(lambda row: (row[0:2], {row[2]}) 
.reduceByKey(lambda a, b: a.union(b)) 
.collect() 
関連する問題