在Dataframe和Pyspark中,可以使用多个条件来更新行。下面是一种常见的方法:
from pyspark.sql import SparkSession
from pyspark.sql.functions import when
spark = SparkSession.builder.getOrCreate()
data = [("Alice", 25, "F"), ("Bob", 30, "M"), ("Charlie", 35, "M")]
df = spark.createDataFrame(data, ["name", "age", "gender"])
df.show()
输出结果:
+-------+---+------+
| name|age|gender|
+-------+---+------+
| Alice| 25| F|
| Bob| 30| M|
|Charlie| 35| M|
+-------+---+------+
df = df.withColumn("age", when((df.name == "Alice") & (df.gender == "F"), 26).otherwise(df.age))
df.show()
输出结果:
+-------+---+------+
| name|age|gender|
+-------+---+------+
| Alice| 26| F|
| Bob| 30| M|
|Charlie| 35| M|
+-------+---+------+
在上述代码中,我们使用withColumn
函数和when
函数来更新满足多个条件的行。在这个例子中,我们将名字为"Alice"且性别为"F"的行的年龄更新为26,其他行的年龄保持不变。
这是一个简单的示例,你可以根据实际需求和条件进行更复杂的更新操作。在Pyspark中,还有其他方法可以实现类似的功能,如使用filter
函数和select
函数等。
关于Pyspark的更多信息和使用方法,你可以参考腾讯云的产品文档:Pyspark。
领取专属 10元无门槛券
手把手带您无忧上云