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