AWS 胶水:忽略 JSON 属性中的空格

AWS glue: ignoring spaces in JSON properties

我有一个包含 JSON 个文件的数据集。这些 JSON 的某些条目在

等条目中有 space
{
    'propertyOne': 'something',
    'property Two': 'something'
}

我已经让几个不同的爬虫爬取了这个数据集,以尝试获取我想要的模式。由于某种原因,在我的一次爬网中,spaces 被删除了,但是在尝试复制该过程时,我无法删除 spaces,并且在 Athena 中查询时出现此错误

HIVE_METASTORE_ERROR: : expected at position x in 'some string' but ' ' found instead.

位置 x 是 JSON 条目中 'property' 和 'Two' 之间的 space 的位置。

我希望能够在抓取时排除此字段或删除 space,但我不确定如何操作。我无法更改 JSON 格式。感谢任何帮助

我相信在这种情况下,您唯一的选择是创建您自己的 custom JSON classifier 到 select 您希望爬网程序添加到数据目录的属性。

即如果你只想检索 propertyOne 你可以使用指定 JSONPath 表达式为 $.propertyOne.

另请注意,您的 JSON 应该用双引号引起来,单引号也可能在解析数据时引起问题。

这实际上是 aws gule json 分类器的一个错误,因为它不能很好地处理其中包含 space 的嵌套属性。语法错误在爬虫生成的模式中,而不是在 json 中。它生成如下内容:

struct<propertyOne:string, property Two:string>

"property two"中的space应该被爬虫转义了。此时,为 table 生成 DDL 也不起作用。我们也面临这个问题,正在寻找解决方法