如何检查spark sql map类型中是否存在key

问题描述 投票:1回答:2

所以我有一个包含一列地图类型的表(键和值都是字符串)。

我想写这样的spark sql来检查地图中是否存在给定的密钥。

select count(*) from my_table where map_contains_key(map_column, "testKey")

我找不到任何可以执行此操作的现有spark sql函数。

有任何想法吗?

谢谢

apache-spark apache-spark-sql
2个回答
3
投票

可以使用这种结构:

df.where($"map_column"("testKey").isNotNull)

对于纯sql:

spark.sql("select * from my_table where mapColumn[\"testKey\"] is not null")

0
投票

弄清楚了。以下sql查询工作

select count(*) from my_table where map_column["testKey"] is not null
© www.soinside.com 2019 - 2024. All rights reserved.