Aws glue 如何告诉AWS glue我的json是utf-8?

Aws glue 如何告诉AWS glue我的json是utf-8?,aws-glue,Aws Glue,我正在尝试使用AWS胶水爬虫为json文件创建一个表。我的JSon文件是带BOM的utf-8。AWS Glue似乎无法将该文件识别为json(或者任何事实上的东西),因此它创建了一个空表定义。纯文本文件确实可以工作(但它们当然不能正确地包含国际字符)。 有没有办法告诉Glue文件是utf-8?我已经尝试将S3元数据“Content Type”设置为“application/json;charset=utf-8”,但没有任何帮助。事实证明,对于AWS Glue json文件,不能有BOM表。正如t

我正在尝试使用AWS胶水爬虫为json文件创建一个表。我的JSon文件是带BOM的utf-8。AWS Glue似乎无法将该文件识别为json(或者任何事实上的东西),因此它创建了一个空表定义。纯文本文件确实可以工作(但它们当然不能正确地包含国际字符)。
有没有办法告诉Glue文件是utf-8?我已经尝试将S3元数据“Content Type”设置为“application/json;charset=utf-8”,但没有任何帮助。

事实证明,对于AWS Glue json文件,不能有BOM表。正如triplee在评论中所说,它们默认为utf-8。的确,他说:

8.1。字符编码
不属于封闭生态系统的系统之间交换的JSON文本必须使用UTF-8编码

并补充说:

实现不得将字节顺序标记(U+FEFF)添加到 网络传输的JSON文本的开头。为了 互操作性,解析JSON文本的实现可能会忽略 字节顺序标记的存在,而不是将其视为 错误


如果AWS Glue能做到最后一点,那会很好,但他们不需要这样做。

事实证明,对于AWS Glue,json文件不能有BOM表。正如triplee在评论中所说,它们默认为utf-8。的确,他说:

8.1。字符编码
不属于封闭生态系统的系统之间交换的JSON文本必须使用UTF-8编码

并补充说:

实现不得将字节顺序标记(U+FEFF)添加到 网络传输的JSON文本的开头。为了 互操作性,解析JSON文本的实现可能会忽略 字节顺序标记的存在,而不是将其视为 错误


如果AWS Glue能做到最后一点,那会很好,但他们不需要这样做。

JSON的定义是UTF-8。尝试删除BOM;正确的UTF-8应该不需要,Unicode联盟通常建议不要插入BOM。否则,我猜您在这里选错了树,或者您的数据实际上不是UTF-8。您是对的,BOM似乎是个问题。谢谢可能会发布一个自我回答,并最终将其标记为已接受(我认为您需要等待一段时间才能回答,再等待一段时间才能接受代表级别的回答)。好的,我会的,我想您可能需要代表;)根据定义,tripleee the great altruist.JSON是UTF-8。尝试删除BOM;正确的UTF-8应该不需要,Unicode联盟通常建议不要插入BOM。否则,我猜您在这里选错了树,或者您的数据实际上不是UTF-8。您是对的,BOM似乎是个问题。谢谢可能会发布一个自我回答,并最终将其标记为已接受(我认为您需要等待一段时间才能回答,再等待一段时间才能接受代表级别的回答)。好的,我会的,我想您可能需要代表;)特里皮是伟大的利他主义者。