在Pyspark中,可以使用when
语句和array_contains
函数根据条件创建新列。when
语句用于根据条件选择不同的操作,而array_contains
函数用于检查数组中是否包含指定的元素。
下面是使用when
语句和array_contains
函数创建新列的示例代码:
from pyspark.sql import SparkSession
from pyspark.sql.functions import when, array_contains
# 创建SparkSession
spark = SparkSession.builder.getOrCreate()
# 创建示例数据
data = [("Alice", ["apple", "banana", "orange"]),
("Bob", ["grape", "watermelon"]),
("Charlie", ["apple", "orange"]),
("David", ["banana", "grape"]),
("Eva", ["apple", "banana"])]
df = spark.createDataFrame(data, ["name", "fruits"])
# 使用when语句和array_contains函数创建新列
df = df.withColumn("has_apple", when(array_contains(df.fruits, "apple"), "Yes").otherwise("No"))
# 显示结果
df.show()
输出结果如下:
+-------+------------------+---------+
| name| fruits|has_apple|
+-------+------------------+---------+
| Alice|[apple, banana, o]| Yes|
| Bob|[grape, watermelon]| No|
|Charlie| [apple, orange, ]| Yes|
| David| [banana, grape]| No|
| Eva| [apple, banana,]| Yes|
+-------+------------------+---------+
在上述示例中,我们创建了一个包含两列(name和fruits)的DataFrame。然后,使用when
语句和array_contains
函数创建了一个新列has_apple
,该列根据fruits列中是否包含"apple"来判断,如果包含则为"Yes",否则为"No"。
推荐的腾讯云相关产品和产品介绍链接地址:
请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行评估和决策。
领取专属 10元无门槛券
手把手带您无忧上云