Dataframe 逗号分隔列上的Pypark聚合
我有一个巨大的数据框,其中有两列:Dataframe 逗号分隔列上的Pypark聚合,dataframe,pyspark,aggregate,Dataframe,Pyspark,Aggregate,我有一个巨大的数据框,其中有两列:“NAME”,“VALUE”。“NAME”列的行值之一是“X,Y,V,A” 我想转换我的数据帧,使“NAME”值为列,而“VALUE”的平均值为行值 我使用了pivot函数: df1=df.groupby('DEVICE','DATE').pivot('NAME').avg('VALUE')) 除了“X,Y,V,A”之外的所有名称值都能很好地处理上述内容。我不知道如何分离“X,Y,V,A”的4个值,并根据单个值进行聚合。IIUC,您需要首先拆分和分解字符串:
“NAME”
,“VALUE”
。“NAME”
列的行值之一是“X,Y,V,A”
我想转换我的数据帧,使“NAME”
值为列,而“VALUE”
的平均值为行值
我使用了pivot函数:
df1=df.groupby('DEVICE','DATE').pivot('NAME').avg('VALUE'))
除了
“X,Y,V,A”
之外的所有名称值都能很好地处理上述内容。我不知道如何分离“X,Y,V,A”的4个值,并根据单个值进行聚合。IIUC,您需要首先拆分和分解字符串:
从pyspark.sql.functions导入拆分、分解
df=df.withColumn(“NAME”,explode(拆分(“NAME)”,“,”))
现在,您可以分组和旋转:
df1=df.groupby('DEVICE','DATE').pivot('NAME').avg('VALUE'))