小编C. *_*rry的帖子

PySpark 动态 When 语句

我有一个用于创建列名的字符串列表。此列表是动态的,可能会随着时间而变化。根据字符串的值,列名称会发生​​变化。我目前拥有的代码示例如下:

df = df.withColumn("newCol", \
    F.when(df.pet == "dog", df.dog_Column) \
    .otherwise(F.when(df.pet == "cat", df.cat_Column) \
    .otherwise(None))))
Run Code Online (Sandbox Code Playgroud)

我想返回列表中名称的派生列。我想做这样的事情:

dfvalues = ["dog", "cat", "parrot", "goldfish"]

df = df.withColumn("newCol", F.when(df.pet == dfvalues[0], \
     F.col(dfvalues[0] + "_Column")) 
Run Code Online (Sandbox Code Playgroud)

问题是我无法弄清楚如何在 Pyspark 中创建循环条件。

loops python-2.7 apache-spark pyspark

3
推荐指数
1
解决办法
2155
查看次数

标签 统计

apache-spark ×1

loops ×1

pyspark ×1

python-2.7 ×1