Pyspark pivot函数使用问题:按公司汇总销售额后行转列求助
PySpark pivot函数实现销售额按公司转置求和方案
核心实现逻辑:无需指定分组字段,直接对company字段执行pivot操作,同时对sales字段做聚合求和,即可得到单行列转置的汇总结果。
完整实现代码如下:
from pyspark.sql import SparkSession # 初始化SparkSession spark = SparkSession.builder.appName("pivot_demo").getOrCreate() # 构造测试数据集 data = [ ("amazon", 100), ("flipkart", 900), ("ebay", 890), ("amazon", 100), ("flipkart", 100), ("ebay", 10), ("amazon", 100), ("flipkart", 90), ("ebay", 10) ] df = spark.createDataFrame(data, schema=["company", "sales"]) # 核心pivot处理逻辑 result_df = df.groupBy() \ .pivot("company") \ .sum("sales") # 输出结果 result_df.show()
运行后输出结果与预期完全一致:
+------+--------+----+ |amazon|flipkart|ebay| +------+--------+----+ | 300| 1090| 910| +------+--------+----+
如果你的源数据本身已经是预聚合后的结果,可将sum("sales")替换为first("sales")取首个值即可。
内容的提问来源于stack exchange,提问作者Saurabh
相关产品推荐
相关产品推荐

