我正在尝试使用when更新PySpark Dataframe中的列。我正在使用数组检查多个条件。我收到错误'Cannot convert column into bool'
。
我假设这是因为我使用in
来检查值列表。该错误提供了替代其他东西,如和(&)和或(|),但没有任何内容。
有没有办法对所有值进行检查,而不是链接几个when语句?代码如下
affirm = ['yes', 'y', 'Y', 'Yes', 'YES']
neg = ['no', 'n', 'N', 'No', 'NO']
new_df.withColumn('resp', when(col("resp") in affirm, 'Yes').when(col("resp") in neg, 'No').otherwise('null'))
答案 0 :(得分:4)
试试这个:
new_df.withColumn('resp', when(col("resp").isin(*affirm), 'Yes').when(col("resp").isin(*neg), 'No').otherwise('null'))