在pyspark dataframe中进行聚合时如何重命名列名和演员类型

时间:2018-09-18 14:26:16

标签: pyspark

我有一个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

我可以知道如何改进它吗?

谢谢。

1 个答案:

答案 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

)