2017-12-14 11 views
-1

Eingabedatenrahmen unter Verwendung von:mehrere Spalten in eine Spalte in pyspark Merge Python

id,page,location,trlmonth 
1,mobile,chn,08/2018 
2,product,mdu,09/2018 
3,product,mdu,09/2018 
4,mobile,chn,08/2018 
5,book,delhi,10/2018 
7,music,ban,11/2018 

Ausgangsdatenrahmen:

userdetail,count 
mobile-chn-08/2018,2 
product-mdu-09/2018,2 
book-delhi-10/2018,1 
music-ban-11/2018,1 

i versuchen likethat es einzelne colume verschmelzen zu einer ist, wie mehrere colum in eine verschmelzen

from pyspark.sql import functions as F 

df2 = (df 
    .groupby("id") 
    .agg(F.concat_ws("-", F.sort_array(F.collect_list("product"))).alias("products")) 
    .groupby("products") 
    .agg(F.count("id")).alias("count")) 

Antwort

0

Wir können einfach groupby userdetail Spalten und erhalten zählen. Versuchen Sie dies,

>>> df.orderBy('trlmonth').groupby('page','location','trlmonth').count().select(F.concat_ws('-','page','location','trlmonth').alias('user_detail'),'count').show() 
+-------------------+-----+ 
|  user_detail|count| 
+-------------------+-----+ 
| mobile-chn-08/2018| 2| 
|product-mdu-09/2018| 2| 
| book-delhi-10/2018| 1| 
| music-ban-11/2018| 1| 
+-------------------+-----+ 
Verwandte Themen