在Spark中,可以使用filter
函数来删除DataFrame中ArrayType列中的空列表。具体步骤如下:
import org.apache.spark.sql.functions._
import org.apache.spark.sql.types._
val data = Seq(
(1, Array(1, 2, 3)),
(2, Array.empty[Int]),
(3, Array(4, 5)),
(4, Array.empty[Int])
).toDF("id", "values")
filter
函数删除空列表:val result = data.filter(size($"values") > 0)
在上述代码中,size($"values")
用于获取ArrayType列中列表的大小,然后使用filter
函数将大小大于0的行保留下来,即删除了空列表。
result.show()
完整代码示例:
import org.apache.spark.sql.functions._
import org.apache.spark.sql.types._
val data = Seq(
(1, Array(1, 2, 3)),
(2, Array.empty[Int]),
(3, Array(4, 5)),
(4, Array.empty[Int])
).toDF("id", "values")
val result = data.filter(size($"values") > 0)
result.show()
这样就能从Spark Dataframe的ArrayType列中删除Scala中的空列表。
推荐的腾讯云相关产品:腾讯云的云服务器(CVM)和弹性MapReduce(EMR)服务可以用于处理大数据和分布式计算任务。您可以通过以下链接了解更多关于腾讯云的产品和服务:
领取专属 10元无门槛券
手把手带您无忧上云