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