Athena 嵌套结构查询 - 如何在 SQL 中查询 Value_counts
Posted
技术标签:
【中文标题】Athena 嵌套结构查询 - 如何在 SQL 中查询 Value_counts【英文标题】:Athena nested Struct Querying - how to query Value_counts in SQL 【发布时间】:2020-05-17 16:49:56 【问题描述】:我在 AWS Athena 中有一个大的嵌套结构。这是表中名为“petowners”的一列:
_id=5e6b531a412345e0e86aeae0, status=NotAnalyzed, animalcategories=[categoryname=mammals, matches=1, categoryname=birds, matches=2, categoryname= UnknownField, matches=4], ...many-other-values
我正在寻找:
-
相当于列中的python函数
value_counts
。
意思是我正在寻找将输出的 SQL Athena 命令
这一行:[mammals:1, birds:2, UnknownField:4]
一种查询聚合的方法——创建一个总数的直方图
每个主人的宠物数量row = 7
有多少宠物主人在“动物类别”中有UnknownField
整张桌子有多少种动物?
【问题讨论】:
当由于数据结构导致逻辑复杂时,可以使用正则表达式提取出需要的数据。 【参考方案1】:这是解决方案的开始: 我们称表为“entire_table”
SELECT t.entire_table._id,
t.petowners.animalcategories,
ac.categoryname,
ac.matches
FROM entire_table t, UNNEST(t.petowners.animalcategories) AS t(ac)
此查询将输出一个表,其中包含名为“categoryname”和“matches”的列,其中每一行重复的类别名称与每个 user_id 的数量一样多:
| _id |动物类别 |类别名称 |比赛 | |--------------------------|---------- -------------------------------------------------- ---------------------------------------|---------- ----|----------| | 5e6b531a412345e0e86aeae0 | [categoryname=mammals,matches=1,categoryname=birds,matches=2,categoryname=UnknownField,matches=4] |哺乳动物| 高分辨率照片| CLIPARTO 1 | | 5e6b531a412345e0e86aeae0 | [categoryname=mammals,matches=1,categoryname=birds,matches=2,categoryname=UnknownField,matches=4] |鸟| 高分辨率照片| CLIPARTO 2 | | 5e6b531a412345e0e86aeae0 | [categoryname=mammals,matches=1,categoryname=birds,matches=2,categoryname=UnknownField,matches=4] |未知字段 | 4 |以下是启用该解决方案的最相关链接(按重要性顺序排列):
A similar question in *** Presto documentation showing Lambda Expressions and Functions which are another way to work with nested structs AWS explaining about "Querying Arrays with Complex Types and Nested Structures" A good blog read from Joe Celko about "Nesting levels in SQL" SQL original paper from 1970 IBM research by E.F.CODD added for the sake of "being pretty" and as a token of respect SQL pdf HUGE manual - a bit of an overkill but under "Query expressions" at page 323 I look for the answers I can't seem to find anywhere else在进入兔子洞时,我遇到了一些我认为值得一提的不太有用的链接,为了进行全面审查,我将在此处添加它们:
AWS Athena forum - many good questions, yet sadly few answers Presto google group - focused on the engineering part, not many answers as well我希望有一天有人会发现这篇文章很有用,并从浏览网页的几个小时中获得一条捷径,以寻找我必须通过的答案。祝你好运。
【讨论】:
以上是关于Athena 嵌套结构查询 - 如何在 SQL 中查询 Value_counts的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Amazon Athena 上查询(搜索)具有 JSON 值的 sql?