【问题标题】:Athena UNION - do I need to define struct columns?Athena UNION - 我需要定义结构列吗?
【发布时间】:2020-07-01 21:41:09
【问题描述】:

我在 Athena 中有一堆表,其中包含具有不同嵌套列的结构。我想从所有这些表中查询为单个表(即联合视图),并且我希望能够从结构中返回嵌套列,如果它存在,否则返回 null。

例子:

Table1: 
email
record: {email, first_name, last_name}

Table2:
email
record: {email, dob}

我希望能够合并这些,然后在公共电子邮件列上进行查询。然后执行record.first_name 之类的操作,生成一个填充了 Table1 行数据和 Table 2 行的空值的列。

我尝试在属性周围包裹一个 try() 块,结果导致“无法解析列”错误。

这可能吗?还是我需要在视图/联合查询中定义结构列?

【问题讨论】:

标签: sql amazon-athena


【解决方案1】:

您可以将record 转换为JSON,如下所示:

SELECT
  email,
  CAST(record AS JSON) AS record
FROM table1

UNION ALL

SELECT
  email,
  CAST(record AS JSON) AS record
FROM table2

我相信你也可以转换为 MAP,但我不知道语法。

【讨论】:

  • 啊哈!我不知道 JSON 数据类型。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-27
  • 1970-01-01
  • 1970-01-01
  • 2014-01-31
  • 1970-01-01
相关资源
最近更新 更多