我正在尝试将 Gzip 存档中的数据加载到 Hive 表中,但我的 gzip 文件具有扩展名,例如:
apache_log.gz_localhost
当我指定这些文件所在的 HDFS 目录位置时,Hive 无法识别 GZip 压缩文件,因为它正在搜索扩展名为 .gz 的文件。
将数据加载到 Hive 时是否可以定义文件类型?像(伪)这样的东西:
设置 input.format=gzip;
加载数据路径 /tmp/logs/ INTO TABLE apache_logs;
这是我用于创建表的 SQL:
CREATE EXTERNAL TABLE access_logs (
`ip` STRING,
`time_local` STRING,
`method` STRING,
`request_uri` STRING,
`protocol` STRING,
`status` STRING,
`bytes_sent` STRING,
`referer` STRING,
`useragent` STRING,
`bytes_received` STRING
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
'input.regex'='^(\\S+) \\S+ \\S+ \\[([^\\[]+)\\] "(\\w+) (\\S+) (\\S+)" (\\d+) (\\d+|\-) "([^"]+)" "([^"]+)".* (\\d+)'
)
STORED AS TEXTFILE
LOCATION '/tmp/logs/';