我有一个Spark数据框,其中包含'id'和'articles'两列,还有一个以下的值列表'a_list'。
df = spark.createDataFrame([(1, 4), (2, 3), (5, 6)], ("id", "articles"))
a_list = [1, 4, 6]
我正在尝试将列表值与数据框列“articles”的值进行比较,如果匹配,则将列'E'更新为1,否则为0。
我在下面的代码中使用了“isin”。
df['E'] = df.articles.isin(a_list).astype(int)
开始
类型错误:意外的类型:
<type 'type'>
我这里缺少了什么?
when.otherwise
条件地创建列。import pyspark.sql.functions as f; df.withColumn('E', f.when(df.articles.isin(a_list), 'confirmed').otherwise('not confirmed'))
- Psidom