【问题标题】:JSON file not loading into redshiftJSON文件未加载到红移
【发布时间】:2016-06-15 16:35:14
【问题描述】:

我在使用 redshift 中的复制命令加载 JSON 对象时遇到问题,我收到以下 JSON 格式的文件,在尝试使用复制命令时失败,但是当我将 json 文件调整到底部时它可以工作.这不是一个理想的解决方案,因为我不允许修改 JSON 文件

这很好用:

{
   "id": 1,
   "name": "Major League Baseball"
}
{
   "id": 2,
   "name": "National Hockey League"
}

这不起作用(注意额外的方括号)

[
{"id":1,"name":"Major League Baseball"},
{"id":2,"name":"National Hockey League"}
]

这是我的 json 路径

{
    "jsonpaths": [
        "$['id']",
        "$['name']"
    ]
}

【问题讨论】:

  • 你能澄清一下这个问题吗?
  • 我正在尝试将一些 JSON 复制到 Redshift 中,问题是 JSON 包含“[”和逗号(见上文 JSON),在中断加载此数据的区域中,我可以编写一个脚本解决这个问题,但理想情况下我想避免这种情况
  • 每一行的数据都需要像第一个示例中那样是一个单独的 json 对象。 jsonpaths 规范是一个列表,但它是一个对象内的列定位器列表。为了支持第二个示例,Redshift 必须先解析大量文件,然后才能确定哪些值是一行的一部分。
  • 你能举个例子吗?

标签: sql json amazon-redshift


【解决方案1】:

COPY 命令的问题在于它并不真正接受有效的 JSON 文件。相反,它期望 JSON-per-line 在文档中为 shown,但未明确提及。

因此,每一行都应该是有效的 JSON,但完整的文件不是。这就是为什么当您修改文件时,它会起作用。

【讨论】:

    猜你喜欢
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    • 2015-01-02
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 2016-11-13
    • 2021-11-22
    相关资源
    最近更新 更多