Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PySpark中的每组平均值_Pyspark_Apache Spark Sql_Average - Fatal编程技术网

PySpark中的每组平均值

PySpark中的每组平均值,pyspark,apache-spark-sql,average,Pyspark,Apache Spark Sql,Average,我有PySpark数据框,如下所示: cust | amount | ---------------- A | 5 | A | 1 | A | 3 | B | 4 | B | 4 | B | 2 | C | 2 | C | 1 | C | 7 | C

我有PySpark数据框,如下所示:

cust |  amount |  
----------------
A    |  5      |  
A    |  1      |
A    |  3      |     
B    |  4      |     
B    |  4      |     
B    |  2      |     
C    |  2      |     
C    |  1      |     
C    |  7      |     
C    |  5      |    
我需要按列
“cust”
分组,并计算每组的平均值

预期结果:

cust |  avg_amount
-------------------
A    |  3
B    |  3.333
C    |  7.5
我一直在使用下面的代码,但给出了错误

data.withColumn(“平均金额”),F.avg(“金额”)


你知道我如何计算这个平均值吗?

使用
groupBy
按客户统计交易数量和
金额的平均值:

from pyspark.sql import functions as F

data = data.groupBy("cust")\
           .agg(
               F.count("*").alias("amount"),
               F.avg("amount").alias("avg_amount")
           )

如何确定“金额”列?似乎是为每个客户随机选择的。预期输出中的
金额列的规则是什么?例如,为什么组
A
3
?列
金额中没有规则。它是事务行。取决于客户正在进行的交易数量。那么B不应该是2,C不应该是4吗?他们在输入表中分别有2个和4个事务。这是否回答了您的问题?