PySpark列表中的项目

问题描述 投票:1回答:1

以下是我正在努力实现的行动:

types = ["200","300"]
def Count(ID):
    cnd = F.when((**F.col("type") in types**), 1).otherwise(F.lit(0))
    return F.sum(cnd).alias("CountTypes")

粗体语法不正确,有关如何在PySpark中获取正确语法的任何建议吗?

apache-spark pyspark pyspark-sql
1个回答
3
投票

我不确定你想要实现什么,但这里是正确的语法:

types = ["200","300"]
from pyspark.sql import functions as F

cnd = F.when(F.col("type").isin(types),F.lit(1)).otherwise(F.lit(0))
sum_on_cnd = F.sum(cnd).alias("count_types")
# Column<b'sum(CASE WHEN (type IN (200, 300)) THEN 1 ELSE 0 END) AS `count_types`'>
© www.soinside.com 2019 - 2024. All rights reserved.