要遍历Pyspark dataframe的列并根据条件填充一个新列,可以使用withColumn和when函数。下面是一个示例代码:
from pyspark.sql import SparkSession
from pyspark.sql.functions import col, when
# 创建一个SparkSession
spark = SparkSession.builder.getOrCreate()
# 创建示例DataFrame
data = [("Alice", 25, "F"), ("Bob", 30, "M"), ("Charlie", 35, "M")]
df = spark.createDataFrame(data, ["name", "age", "gender"])
# 定义要进行条件填充的列
condition_col = "age"
new_col = "age_group"
# 遍历DataFrame的列
for column in df.columns:
# 根据条件填充新列
if column == condition_col:
df = df.withColumn(new_col, when(col(column) < 30, "Young").otherwise("Old"))
# 显示结果
df.show()
这个示例代码将根据"age"列的条件填充一个新列"age_group"。如果"age"小于30,则"age_group"为"Young",否则为"Old"。
输出结果:
+-------+---+------+---------+
| name|age|gender|age_group|
+-------+---+------+---------+
| Alice| 25| F| Young|
| Bob| 30| M| Old|
|Charlie| 35| M| Old|
+-------+---+------+---------+
这样,就遍历了Pyspark dataframe的列,并根据条件填充了一个新列。