使用groupBy()的pySpark子数据帧

时间:2019-12-25 02:16:54

标签: dataframe pyspark

我有一个pySpark数据框,并希望使用groupBy操作制作几个子数据框。例如,我有一个像

       subject  relation object 
DF =      s1       p       o1
          s2       p       o2
          s3       q       o3
          s4       q       o4

,并希望有一个具有相同关系名称的子数据框,例如

       subject  relation object 
DF1 =      s1       p       o1
           s2       p       o2
       subject  relation object 
DF2 =      s3       q       o3
           s4       q       o4

如果您可以分享使用groupBy()制作子数据框的想法,将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:0)

您可以分组并创建这样的列表

df_groupby = DF.groupby('relation')

df_list = []
for row in df_groupby.select('relation').distinct().sort('relation').collect(): 
    current_relation = row['relation']
    df_list.append(df_groupby.filter(df_groupby['relation'] == current_relation))