我的数据看起来像:

[null,223433,WrappedArray(),null,460036382,0,home,home,home]

如何在 spark sql 中查询时检查 col3 是否为空?我试图爆炸,但是当我这样做时,空数组行正在消失。有人可以建议我这样做的方法。

我试过了 :
val homeSet = result.withColumn("subscriptionProvider", explode($"subscriptionProvider"))

其中 subscriptionProvider(WrappedArray()) 是具有值数组的列,但某些数组可以为空。我需要使用空值获取 subscriptionProvider 并且 subscriptionProvider 数组具有“Comcast”

最佳答案

尝试:

import org.apache.spark.sql.functions._

val tmp = df.withColumn("subscriptionProvider",
  when(size($"subscriptionProvider") !== 0, $"subscriptionProvider").otherwise(array(lit(null).cast("string"))))

tmp.withColumn("subscriptionProvider", explode($"subscriptionProvider"))

10-07 21:43