在这个例子中,我们首先创建了一个包含姓名和金额的DataFrame。然后,我们使用groupBy函数按姓名分组,并使用agg函数对每组的金额进行求和。sum("amount").alias("total_amount")表示对amount列求和,并将结果列命名为total_amount。 基础概念 DataFrame: Pyspark中的DataFrame是一个分布式数据集合,类似于关系型数据库...
"Department","Salary"]# 创建DataFramedf=spark.createDataFrame(data,columns)# 使用alias函数进行分组和聚合result=df.groupBy("Department")\.agg(F.sum("Salary").alias("TotalSalary"))# 给聚合结果起别名# 显示结果
groupby("uin", "item_id").agg(func.sum("value").alias("m_value")) new_item_m_value = df.select(["uin", "item_id"]).distinct().join(m_value, ["uin", "item_id"], "inner") rfm_values = new_item_r_pay.join(new_item_f_value, ["uin", "item_id"], "inner").join(...
alias('new_type') spark_df.select(['type','lenth',new_type]).show() 2.5 查询函数 pandas查询函数query df = df.query('score == 1') pyspark查询函数filter spark_df.filter("score == 1").show() 2.6 分组聚合函数 pandas分组函数groupby df.groupby('type').sum() pyspark分组函数groupBy spar...
2. groupBy 分组聚合统计 按照department, year计算工资之和。 df.groupBy('department', 'year').agg( F.sum('salary').alias('salary') ).orderBy('department', 'year').show() >>> output Data: >>> +---+---+---+ |department|year|salary| +---+---+---+ | Finance|2020| 10200|...
并修改相应的列名 df.groupBy("Job") \ .agg(f.sum("salary").alias("sum_salary"), f.avg("salary").alias("avg_salary"), f.min("salary").alias("min_salary"), f.max("salary").alias("max_salary"), f.mean("salary").alias("mean_salary") ) \ .show(truncate=False) OUT: +--...
(truncate=False) # 聚合的同时进行过滤操作 df.groupBy("department") \ .agg(sum("salary").alias("sum_salary"), \ avg("salary").alias("avg_salary"), \ sum("bonus").alias("sum_bonus"), \ max("bonus").alias("max_bonus")) \ .where(col("sum_bonus") >= 50000) \ .show(...
F.sum('num').alias('order_num'), F.sum("income").alias('total_income') ).show() cast修改列数据类型 frompyspark.sql.typesimportIntegerType# 下面两种修改方式等价df = df.withColumn("height", df["height"].cast(IntegerType()))
from pyspark.sql.functions import col fga_py = df.groupBy('yr') .agg({'mp' : 'sum', 'fg3a' : 'sum'}) .select(col('yr'), (36*col('sum(fg3a)')/col('sum(mp)')).alias('fg3a_p36m')) .orderBy('yr') from matplotlib import pyplot as plt import seaborn as sns plt.sty...
df.select(df.age.alias('age_value'),'name') 筛选 df.filter(df.name=='Alice') 增加列 增加列有2种方法,一种是基于现在的列计算;一种是用pyspark.sql.functions的lit()增加常数列。 df.select(df.age+1,'age','name') df.select(F.lit(0).alias('id'),'age','name') ...