在Spark DataFrame中使用for循环添加新列可以通过以下步骤实现:
from pyspark.sql import SparkSession
from pyspark.sql.functions import col
spark = SparkSession.builder.getOrCreate()
data = [("Alice", 25), ("Bob", 30), ("Charlie", 35)]
df = spark.createDataFrame(data, ["Name", "Age"])
df.show()
输出:
+-------+---+
| Name|Age|
+-------+---+
| Alice| 25|
| Bob| 30|
|Charlie| 35|
+-------+---+
for col_name in ["Salary", "Department", "Location"]:
df = df.withColumn(col_name, col("Name"))
df.show()
输出:
+-------+---+------+----------+--------+
| Name|Age|Salary|Department|Location|
+-------+---+------+----------+--------+
| Alice| 25| Alice| Alice| Alice|
| Bob| 30| Bob| Bob| Bob|
|Charlie| 35|Charlie| Charlie|Charlie|
+-------+---+------+----------+--------+
在这个例子中,我们使用for循环遍历列名列表,然后使用withColumn
方法将每个列名添加为新列,并将其值设置为原始DataFrame中的"Name"列的值。这样就可以在Spark DataFrame中使用for循环添加新列了。
请注意,这只是一个示例,实际应用中可能需要根据具体需求进行适当的修改。此外,还可以使用其他方法来添加新列,如使用select
和alias
方法等。
领取专属 10元无门槛券
手把手带您无忧上云