You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark数据类型不匹配报错:array<string>与string类型对比问题

解决Spark过滤空数组列时的类型不匹配错误

你遇到的错误是因为sellers列是array<string>类型,但你用字符串"[]"去和它做相等比较,两者数据类型不兼容,所以抛出类型不匹配的异常。

给你三种可行的解决方法:

方法一:通过数组长度判断

利用size()函数获取数组长度,判断是否为0:

var sellersDFSelectSellers = sellersDF.select("sellers")
sellersDFSelectSellers = sellersDFSelectSellers.filter(size(col("sellers")) === 0)

方法二:匹配空数组对象

用lit()创建一个空的字符串数组,直接和列做相等比较:

import org.apache.spark.sql.functions.lit

var sellersDFSelectSellers = sellersDF.select("sellers")
sellersDFSelectSellers = sellersDFSelectSellers.filter(col("sellers") === lit(Array.empty[String]))

方法三:使用isEmpty函数(Spark 2.4及以上版本支持)

直接调用数组列的isEmpty()方法判断是否为空:

var sellersDFSelectSellers = sellersDF.select("sellers")
sellersDFSelectSellers = sellersDFSelectSellers.filter(col("sellers").isEmpty)

内容的提问来源于stack exchange,提问作者skd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 14:29:55