Databricks/Spark SQL - 如何获取地图类型字段中的数据
Databricks/Spark SQL - how to fetch data in a map type field
在 CDP 数据湖中,配置文件 table 具有 identityMap 字段:
[IdentityType -> IdentityValue]
示例值如下所示:
["crmID" -> "{(NULL,crm123,NULL)}",
"loyaltyID" -> "{(NULL,loy456,NULL)}",
"accountID" -> "{(NULL,act789,NULL)}"]
为了验证 ID 的摄取和合并过程,客户希望 运行 对该地图字段进行一些检查,例如:
- 每行有多少个键
- 每个键有多少个值
我曾经精通 TSQL,但那些地图结构对我来说是新的,不知道如何探索这些数据。
可以使用哪种函数或语法来获取identityMap字段?
请随时仅分享对 public 文档的引用。
如果您只需要使用 SQL 来执行此操作,则需要使用方括号 []
来访问值(请参阅 docs)。它们适用于数组和映射,只是对于数组你需要提供索引,而对于映射你需要提供值,比如 column_name['crmID']
.
P.S。您可能还需要使用 map_keys
、map_values
等函数 - 只需点击链接页面底部的链接
在 CDP 数据湖中,配置文件 table 具有 identityMap 字段:
[IdentityType -> IdentityValue]
示例值如下所示:
["crmID" -> "{(NULL,crm123,NULL)}",
"loyaltyID" -> "{(NULL,loy456,NULL)}",
"accountID" -> "{(NULL,act789,NULL)}"]
为了验证 ID 的摄取和合并过程,客户希望 运行 对该地图字段进行一些检查,例如:
- 每行有多少个键
- 每个键有多少个值
我曾经精通 TSQL,但那些地图结构对我来说是新的,不知道如何探索这些数据。
可以使用哪种函数或语法来获取identityMap字段? 请随时仅分享对 public 文档的引用。
如果您只需要使用 SQL 来执行此操作,则需要使用方括号 []
来访问值(请参阅 docs)。它们适用于数组和映射,只是对于数组你需要提供索引,而对于映射你需要提供值,比如 column_name['crmID']
.
P.S。您可能还需要使用 map_keys
、map_values
等函数 - 只需点击链接页面底部的链接