AWS Athena(JSON)的SerDe属性列表

时间:2017-05-22 17:18:28

标签: amazon-web-services amazon-athena hive-serde

我正在测试AWS的Athena产品,到目前为止工作得非常好。但我想知道SerDe属性列表。我搜索得很远,找不到它。我正在使用这个例如"ignore.malformed.json" = "true",但我很确定有很多其他选项来调整查询。

我无法找到关于“path”属性的信息,所以拥有完整的列表将是惊人的。

我查看过Apache Hive文档,但无法在AWS文档/论坛上找到它。

谢谢!

2 个答案:

答案 0 :(得分:3)

您似乎正在使用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

答案 1 :(得分:2)

release notes中所述(请参阅项目符号2),Athena中使用的JSON OpenX SerDe已得到改进。改进包括但不限于以下内容:

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

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