6

我正在测试 AWS 的 Athena 产品,目前运行良好。但我想知道 SerDe 属性列表。我已经搜索了很远,但找不到它。例如,我正在使用这个"ignore.malformed.json" = "true",但我很确定还有很多其他选项可以调整查询。

例如,我找不到有关“路径”属性的作用的信息,因此拥有完整列表将是惊人的。

我查看了 Apache Hive 文档但找不到这个,在 AWS 文档/论坛上也没有。

谢谢!

4

2 回答 2

6

看来您正在使用 Openx-JsonSerDe
http://docs.aws.amazon.com/athena/latest/ug/json.html

// properties used in configuration
public static final String PROP_IGNORE_MALFORMED_JSON = "ignore.malformed.json";
public static final String PROP_DOTS_IN_KEYS = "dots.in.keys";
public static final String PROP_CASE_INSENSITIVE ="case.insensitive" ;

https://github.com/rcongiu/Hive-JSON-Serde/blob/master/json-serde/src/main/java/org/openx/data/jsonserde/JsonSerDe.java

于 2017-05-23T07:44:08.923 回答
3

发行说明中所述(请参阅第 2 条),Athena 中使用的 JSON OpenX SerDe 已得到改进。改进包括但不限于以下内容:

  • 支持ConvertDotsInJsonKeysToUnderscores属性。当设置为 TRUE 时,它允许 SerDe 将键名中的点替换为下划线。例如,如果 JSON 数据集包含名称为“ab”的键,您可以使用此属性在 Athena 中将列名称定义为“a_b”。默认值为假。默认情况下,Athena 不允许在列名中使用点。
  • 支持case.insensitive属性。默认情况下,Athena 要求 JSON 数据集中的所有键都使用小写。使用 WITH SERDE PROPERTIES ("case.insensitive"= FALSE;) 允许您在数据中使用区分大小写的键名。默认值为真。当设置为 TRUE 时,SerDe 将所有大写列转换为小写。

有关更多信息,请参阅Amazon Athena 用户指南中的OpenX JSON SerDe

于 2019-03-08T23:59:51.503 回答