sparse-matrix - 雅典娜查询折叠稀疏矩阵/列数据
问题描述
假设我table1
在 Amazon Athena 中有下表(技术上,在 Glue 中):
torg, foo, bar, x1, x2, x3, baz
-------------------------------
t1, 1, NULL, NULL, NULL, NULL, goober
t2, 1, NULL, NULL, NULL, NULL, NULL -- want to ignore this row entirely, even though foo=1
t3, 1, tronic, NULL, NULL, NULL, NULL
...
t4, 2, NULL, NULL, NULL, NULL, horse
t4, 2, zebra, NULL, NULL, NULL, NULL
...
是否有一个 Athena 查询可以group by
foo
(在此示例中foo=1
),但忽略NULL
每一行的列值,这样结果看起来像?
foo, bar, baz
----------------
1, tronic, goober
对于上下文,我在不同时间将分区镶木地板写入 S3。使用 Athena 查询这些数据真是太棒了,但我很难想象 Athena 是否适合将这些列数据“折叠”成按特定列(或一组列)分组的更多“行”数据)。
虽然我可能会在 pandas 中进一步处理这些数据,并且可以在那里“折叠”它,但我希望 Athena 中可能存在查询模式。或者也许我在想这完全错误的......
任何见解都非常感谢。
解决方案
如果每组只有一个值,则可以使用max
(或min
) 和group by
:
WITH dataset(foo,bar, baz) AS (
VALUES
(1,NULL,'tronic'),
(1,'goober',NULL),
(1,NULL, NULL)
)
SELECT foo, max(bar) bar, max(baz) baz
FROM dataset
GROUP BY foo
输出:
富 | 酒吧 | 巴兹 |
---|---|---|
1 | 古伯 | 电子 |
推荐阅读
- node.js - Accessing non-existent property 'padLevels' of module exports inside circular dependency on react-native link
- angular - Angular Datatables:ERROR 错误:无法读取未定义的属性“then”
- javascript - reactjs如何访问另一个组件中函数的属性
- batch-file - Batch Logging New Line
- javascript - How to validate custom user information on Firebase Authentication?
- data-annotations - 我们可以在 asp.net core 3.1 中覆盖数据注释响应的任何方式
- express - Axios post request not returning response error
- node.js - nodejs napi 如何手动创建 CallbackInfo 类型的数据
- c - Output is in Chinese? Output problems
- google-chrome-extension - Host html pages in chrome extension