我有一个用于创建列名的字符串列表。此列表是动态的,可能会随着时间而变化。根据字符串的值,列名称会发生变化。我目前拥有的代码示例如下:
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 中创建循环条件。