pyspark withField的使用
时间: 2024-05-03 18:23:30 浏览: 84
在 PySpark 中,withField() 方法可以用于添加或更新 DataFrame 中的列。它的基本语法如下:
```
df.withColumn("<new_column_name>", <expression>)
```
其中,`<new_column_name>` 是新的列名,`<expression>` 是一个表达式,用于计算新的列的值。该表达式可以是一个 Python 函数或一个 Spark SQL 表达式。例如,以下代码演示了如何使用 withField() 方法将原始 DataFrame 中的列 `age` 乘以 2 并将其作为新的列 `age_doubled` 添加到 DataFrame 中:
```python
from pyspark.sql.functions import col
df = spark.createDataFrame([(1, "John", 25), (2, "Jane", 30), (3, "Bob", 40)], ["id", "name", "age"])
df = df.withColumn("age_doubled", col("age") * 2)
df.show()
```
输出:
```
+---+----+---+-----------+
| id|name|age|age_doubled|
+---+----+---+-----------+
| 1|John| 25| 50|
| 2|Jane| 30| 60|
| 3| Bob| 40| 80|
+---+----+---+-----------+
```
注意,withField() 方法返回一个新的 DataFrame,原始 DataFrame 不会被修改。如果您想要更新原始 DataFrame,请将其分配给新的 DataFrame,例如:
```python
df = df.withColumn("age_doubled", col("age") * 2)
```
阅读全文