【发布时间】:2021-02-23 14:44:04
【问题描述】:
我有一个类似这样的df:
old_df = sqlContext.createDataFrame(
[ ('375', 20),
('265', 20),
('052', 20),
('111', None),
],
['old_col', 'example_new_col_val'])
我需要通过对照列表检查旧列的值来创建新列。我是 Pyspark 的新手,不明白我的错误信息。这是我尝试过的:
from pyspark.sql import functions as F
my_list = ['375', '012', '013','014','015','016']
expr = F.when(F.col("old_col").isin(my_list),F.lit(20)).otherwise(None).alias("new_col")
new_df = old_df.select("*",*expr)
我的错误信息:TypeError: Column is not iterable
【问题讨论】:
标签: list apache-spark dictionary pyspark iterable