【发布时间】:2019-01-14 23:57:01
【问题描述】:
我有一个包含两列的数据框,listA 存储为Seq[String],valB 存储为String。我想创建第三列valC,它将是Int类型,其值为iff valB is present in listA then 1 otherwise 0
我尝试了以下操作:
val dfWithAdditionalColumn = df.withColumn("valC", when($"listA".contains($"valB"), 1).otherwise(0))
但 Spark 未能执行此操作并给出以下错误:
cannot resolve 'contains('listA', 'valB')' due to data type mismatch: argument 1 requires string type, however, 'listA' is of array type.;
如何在 CASE 语句中使用数组类型的列值?
谢谢, 开发者
【问题讨论】:
标签: apache-spark apache-spark-sql pyspark-sql