配置单元正则表达式 serde 无法识别我的正则表达式
hive regex serde doesnt recognize my regex
我使用 Rubular 来验证我的正则表达式:
(\d+)\:+(\d+)+\:+(\d+)+\:+(\d+)
对于后面的字符串
,它在那里工作得很好
1::594::5::838984679
但在配置单元中同样不起作用:
create external table ratings8 (userid string, movieid string, rating string, timestamp string) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe' WITH SERDEPROPERTIES ( "input.regex" = "(\d+)\:+(\d+)+\:+(\d+)+\:+(\d+)", "output.format.string" = "%1$s %2$s %3$s %4$s" ) LOCATION '/ratings';
有人可以帮我吗?我做错了什么?
您需要转义字符串中的反斜杠 (\
)。冒号不需要转义,但是
(\d+):+(\d+)+:+(\d+)+:+(\d+)
也没有必要 (\d+)+
因为这等同于 \d+
.
我使用 Rubular 来验证我的正则表达式:
(\d+)\:+(\d+)+\:+(\d+)+\:+(\d+)
对于后面的字符串
,它在那里工作得很好1::594::5::838984679
但在配置单元中同样不起作用:
create external table ratings8 (userid string, movieid string, rating string, timestamp string) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe' WITH SERDEPROPERTIES ( "input.regex" = "(\d+)\:+(\d+)+\:+(\d+)+\:+(\d+)", "output.format.string" = "%1$s %2$s %3$s %4$s" ) LOCATION '/ratings';
有人可以帮我吗?我做错了什么?
您需要转义字符串中的反斜杠 (\
)。冒号不需要转义,但是
(\d+):+(\d+)+:+(\d+)+:+(\d+)
也没有必要 (\d+)+
因为这等同于 \d+
.