input.regex 在蜂巢中
input.regex in Hive
之前针对给定数据集提出了一个问题。
03-24-2014 fm506 TOTAL-PROCESS OK;HARD;1;PROCS OK: 717 processes
03-24-2014 fm504 CHECK-LOAD OK;SOFT;2;OK - load average: 54.61, 56.95
该线程中提供的输入正则表达式根本不起作用,因此我创建了两个“输入正则表达式”并在“http://www.regexplanet.com/advanced/java/index.[= 中测试了第一个正则表达式28=]”。这些团体是完美的。但是当我在 Hive 中尝试时,它只加载 NULL 值。
输入我提供的正则表达式如下
([^ ]*)\t+([^ ]*)\t+([^ ]*)\t+([^ ]*)
我的第二个输入正则表达式是
^(\S+)\t+(\S+)\t+(\S+)\t+(\S+)$
我认为它会起作用,但它也没有加载 NULL 值。
你能告诉我这两个输入正则表达式有什么问题吗?
你的第一个模式不匹配整个字符串,字段匹配部分是[^ ]*
,即除space以外的任何0+字符,所以最后一个字段无法匹配(它包含 spaces).
第二个正则表达式还包含 \S+
匹配除白色以外的 1 个或多个字符的模式space,最后一个不匹配最后一个字段。
您可以使用
^(\S+)\t+(\S+)\t+(\S+)\t+(.+)
^([^\t]*)\t+([^\t]*)\t+([^\t]*)\t+(.*)
[^\t]*
匹配 tab-delimited 文本中的任何字段,因为它匹配零个或多个制表符以外的字符。
之前针对给定数据集提出了一个问题。
03-24-2014 fm506 TOTAL-PROCESS OK;HARD;1;PROCS OK: 717 processes
03-24-2014 fm504 CHECK-LOAD OK;SOFT;2;OK - load average: 54.61, 56.95
该线程中提供的输入正则表达式根本不起作用,因此我创建了两个“输入正则表达式”并在“http://www.regexplanet.com/advanced/java/index.[= 中测试了第一个正则表达式28=]”。这些团体是完美的。但是当我在 Hive 中尝试时,它只加载 NULL 值。
输入我提供的正则表达式如下
([^ ]*)\t+([^ ]*)\t+([^ ]*)\t+([^ ]*)
我的第二个输入正则表达式是
^(\S+)\t+(\S+)\t+(\S+)\t+(\S+)$
我认为它会起作用,但它也没有加载 NULL 值。
你能告诉我这两个输入正则表达式有什么问题吗?
你的第一个模式不匹配整个字符串,字段匹配部分是[^ ]*
,即除space以外的任何0+字符,所以最后一个字段无法匹配(它包含 spaces).
第二个正则表达式还包含 \S+
匹配除白色以外的 1 个或多个字符的模式space,最后一个不匹配最后一个字段。
您可以使用
^(\S+)\t+(\S+)\t+(\S+)\t+(.+)
^([^\t]*)\t+([^\t]*)\t+([^\t]*)\t+(.*)
[^\t]*
匹配 tab-delimited 文本中的任何字段,因为它匹配零个或多个制表符以外的字符。