Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用serde regex在配置单元表中加载日志数据为空_Regex_Hive_Hiveql_Hive Serde - Fatal编程技术网

使用serde regex在配置单元表中加载日志数据为空

使用serde regex在配置单元表中加载日志数据为空,regex,hive,hiveql,hive-serde,Regex,Hive,Hiveql,Hive Serde,我想分析这个日志样本 5月3日11:52:54 cdh-dn03初始:tty(/dev/tty6)主进程(1208) 被术语信号杀死 5月3日11:53:31 cdh-dn03内核:已注册taskstats版本1 五月三日11:53:31 cdh-dn03内核:sr0:scsi3 mmc驱动器:32x/32x xa/form2托盘 5月3日11:53:31 cdh-dn03内核:piix4_smbus 0000:00:07.0:smbus基础 地址未初始化-升级BIOS或使用force\u ad

我想分析这个日志样本

5月3日11:52:54 cdh-dn03初始:tty(/dev/tty6)主进程(1208) 被术语信号杀死

5月3日11:53:31 cdh-dn03内核:已注册taskstats版本1

五月三日11:53:31 cdh-dn03内核:sr0:scsi3 mmc驱动器:32x/32x xa/form2托盘

5月3日11:53:31 cdh-dn03内核:piix4_smbus 0000:00:07.0:smbus基础 地址未初始化-升级BIOS或使用force\u addr=0xaddr

5月3日11:53:31 cdh-dn03内核:nf_conntrack版本0.5.0(7972 铲斗,最大31888个)

5月3日11:53:57 cdh-dn03内核:hr计时器:中断时间为11250457 ns

May 3 11:53:59 cdh-dn03 ntpd_initres[1705]:找不到主机名: 0.rhel.pool.ntp.org

这就是我创建表并将数据加载到表中的方式

CREATE TABLE LogParserSample(

 month_name STRING, day STRING, time STRING, host STRING, event STRING, log STRING)

 ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'   

 WITH SERDEPROPERTIES (

  'input.regex' = '(^(\S+))\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+((\S+.)*)')

 stored as textfile;
我正在使用这些网站生成regex

这两个是我正在使用的正则表达式

load data local inpath '/home/programmeur_v/serde_dataset.txt' into table LogParserSample;

select * from LogParserSample;
(\w{3})\s+(\w{1})\s+(\s+)\s+(\s+)\s+(\s+)\s+((\s+)*)

(^(\S+)\S+(\S+)\S+(\S+)\S+(\S+)\S+(\S+)\S+((\S+)*)

加载数据并选择

load data local inpath '/home/programmeur_v/serde_dataset.txt' into table LogParserSample;

select * from LogParserSample;
输出为空

配置单元>从LogParserSample中选择*

空空空空空空空

空空空空空空空

空空空空空空空

空空空空空空空

空空空空空空空

空空空空空空空

空空空空空空空

所用时间:0.094秒,获取:7行


刚进入配置单元,所以不知道问题到底出在哪里

在使用regex-serde创建配置单元表时,我们需要使用Java等效regex

尝试以下ddl:


使用link生成java等价的正则表达式。

您可以尝试使用
(\w{3})\s+(\w{1})\s+(\s+)\s+(\s+)\s+(\s+)(.*)
Hi Bala,我尝试使用这个正则表达式,但仍然加载空值set@Vaibhav:如果这有效,请接受答案。