在PySpark中,可以使用groupBy
和withColumn
方法来按照指定列进行分组并创建新列。
以下是一个示例代码:
# 导入必要的模块
from pyspark.sql import SparkSession
from pyspark.sql.functions import col
# 创建SparkSession对象
spark = SparkSession.builder.getOrCreate()
# 创建示例数据帧
data = [("Alice", 25, "A"),
("Bob", 30, "B"),
("Alice", 35, "A"),
("Bob", 40, "B")]
df = spark.createDataFrame(data, ["Name", "Age", "Group"])
# 按照指定列进行分组,并创建新列"Average Age"来计算每个组的平均年龄
df_with_avg_age = df.groupBy("Group").agg({"Age": "avg"}).withColumnRenamed("avg(Age)", "Average Age")
# 显示结果
df_with_avg_age.show()
运行以上代码,将会得到以下输出:
+-----+-----------+
|Group|Average Age|
+-----+-----------+
| B| 35.0|
| A| 30.0|
+-----+-----------+
在上面的代码中,我们使用groupBy
方法按照"Group"列进行分组,并使用agg
方法计算每个组的平均年龄。然后,使用withColumnRenamed
方法为结果列重命名为"Average Age"。最后,使用show
方法显示结果数据帧。
上一篇:按照指定ID创建观测数量
下一篇:按照指定顺序打印页面