Dataframe 使用groupBy()的pySpark子数据帧

Dataframe 使用groupBy()的pySpark子数据帧,dataframe,pyspark,Dataframe,Pyspark,我有一个pySpark数据帧,希望使用groupBy操作生成几个子数据帧。例如,我有一个类似DF的 subject relation object DF = s1 p o1 s2 p o2 s3 q o3 s4 q o4 并且希望有一个子数据帧具有相同的关系名称,如 subject relatio

我有一个pySpark数据帧,希望使用groupBy操作生成几个子数据帧。例如,我有一个类似DF的

       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()制作子数据帧的想法,我将不胜感激


谢谢

您可以通过groupy和创建这样的列表

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))