0
我有一个数据帧,看起来像这样在星火灌装数据帧与“时”功能
df1:
image-id colorList
-------------------------
id1 [Red,Blue]
id2 [White,Grey]
现在我想创建一个使用df1
,看起来像这样
df2:
image-id isRed isBlue isWhite isGrey
----------------------------------------
id1 1 1 0 0
id2 0 0 1 1
我是一个新的数据帧试图使用以下代码,并且由于类型不匹配而无法工作
val df2 = df1.withColumn("image-id",$"image-id")
.withColumn("isRed", when($"colorList" contains "Red",1).otherwise(0))
我试过
val df2 = df1.withColumn("image-id",$"image-id")
.withColumn("isRed", when($"colorList" contains Seq("Red"),1).otherwise(0))
,我得到这个消息
不支持的文本类型类scala.collection.immutable $结肠结肠$列表(红色)
我可以选择explode
的colorList在df1
,但它会让我的表太复杂。
谢谢@Tzach,'array_contains '工作。 – Sha2b