【发布时间】:2017-09-04 22:06:34
【问题描述】:
我定义了一个 Hive 表,其中单列包含 JSON 文本:
CREATE EXTERNAL TABLE IF NOT EXISTS my.rawdata (
json string
)
PARTITIONED BY (dt string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
'separatorChar' = '\n',
'quoteChar' = '\0',
'escapeChar' = '\r'
)
STORED AS TEXTFILE
LOCATION 's3://mydata/';
是否有 Presto/Athena 查询可以列出 JSON 中出现的所有字段名称及其频率(即属性在表中出现的总次数)?
【问题讨论】:
-
附言。表定义一团糟。 OpenCSVSerde?引用字符?转义字符?
-
OpenCSVSerde 是 Athena 提供的选项之一。我现在正在使用
org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe,但这并没有什么区别。对于 quoteChar 和 escapeChar 我只需要文件中不存在的字符。
标签: json presto amazon-athena