我有一个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()制作子数据框的想法,将不胜感激。
谢谢
答案 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))