我有一个pyspark数据框,我希望获取所有列的均值和标准差,并重命名列的名称和类型,最简单的实现方法是什么,目前下面是我的代码:
test_mean=test.groupby('id').agg({'col1': 'mean',
'col2': 'mean',
'col3':'mean'
})
test_std=test.groupby('id').agg({'col1': 'std',
'col2': 'std',
'col3':'std'
})
##rename one columns by one columns
## type cast decimal to float
我可以知道如何改进它吗?
谢谢。
答案 0 :(得分:0)
您可以尝试使用Col专家:
from pyspark.sql import functions as F
expr1 = F.std(F.col('col1').cast('integer').alias('col1'))
expr2 = F.std(F.col('col2').cast('integer').alias('col2'))
test \
.groupBy(id) \
.agg(
expr1,
expr2
)