【发布时间】:2018-07-20 16:04:56
【问题描述】:
到目前为止,我所做的是,我已经在我的 linux 环境中设置了 Hadoop 和 Hive,并且我正在尝试将数据从 HDFS 文件提取到我的 Hive 表中。
这是日志行的样子:
apache 2013-10-09T14:04:32Zphp129.124.201.110/EKEE.php20019705910Mozilla/5.0 (X11;Linux i686)AppleWebKit/534.24(KHTML,像 Gecko) Chrome/11.0.696.50 Safari/534.24
这是我的 Hive 查询:
CREATE EXTERNAL TABLE LogParserSample(
logtype STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
'input.regex' = '^[^0-9]+'
)
STORED AS TEXTFILE
LOCATION '/mypath/';
当我执行上述操作时,表已成功创建。但是当我尝试使用 SELECT 语句从该表中查询数据时,我得到的是 null 而不是 apache 这个词。对于这种情况,我试图从上面的日志行中提取单词 apache。但后来我尝试在rubular 中执行相同的正则表达式,结果如我预期的那样正确。我不知道为什么!
【问题讨论】:
标签: regex hadoop hive hdfs hiveql