amazon-web-services - “解析列类型时出错”Redshift Spectrum
问题描述
我有一个频谱用例,它使用来自 s3 的大量 json 文件。我首先使用 Glue 爬虫来爬取数据以创建数据目录。然后使用该目录,我创建了一个外部模式来引用 Glue 数据库,以便我可以访问该目录。现在我可以在根级字符串上执行选择语句,它可以工作 例如:
select t.id from glue_db.test t
问题是,当我对结构对象执行选择语句时,我收到此错误“解析列't.actor.name'的类型时出错”。这是一个示例选择(id 是 actor 结构中的一个字符串):
select t.actor.name from glue_db.test t
我错过了什么?我还尝试将 json 转换为镶木地板,并且在尝试查询嵌套数据时遇到了同样的问题。
这是胶水表def:
这是演员结构:
解决方案
需要在 FROM 子句中指定包含嵌套值的属性,以便 Redshift 知道如何访问它们。还需要确认 Glue 生成的目录正确指定了表。
select a.id
from glue_db.test t, t.actor a
有关使用 Redshift Spectrum 查询嵌套数据的帮助,请参阅本教程。https://docs.aws.amazon.com/redshift/latest/dg/tutorial-query-nested-data-sqlextensions.html
推荐阅读
- c# - 中间件 RequestDelegate 没有冒泡
- row - 由 Google 工作表的编辑插入后保护行
- salesforce - 如何使图像在 Salesforce 社区中并排显示
- sql - postgres:如何添加 2 个“没有时区的时间”列?
- sql - 我想使用 ssh exec 从 SQL 编辑器运行查询,但 shift + F6 不起作用?
- vue.js - 使用 Vue/Electron 应用程序进行身份验证
- python - lxml如何将新元素及其值附加到节点?
- http - 当 Timing-Allow-Origin 设置为 * 时,拒绝获取不安全的标头“Server-Timing”?
- sql-import-wizard - 问题设置源数据列使用 sql 导入数据向导导入 txt 文件
- java - Student 类有一个静态方法 getAllStudents() 有意义吗?