我们得到这样的行:
aa |-| bb |-| cc |-|
我们要提取以|-|分隔的字段。我知道一个解决办法是:
CREATE TABLE rating_regex(
field1 string, field2 string, field3 string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH serdeproperties("input.regex" = "(.+)\\|\\-\\|(.+)\\|\\-\\|(.+)\\|\\-\\|",
"output.format.string" = "%1$s %2$s %3$s")
STORED AS TEXTFILE;
但是如果我们得到的不是三块地而是5000块呢?如何编写regex模式而不重复(+)\\-\\ 5000次?
1条答案
按热度按时间oxalkeyp1#
试试这个。看演示。你可以扩展到你想要的
500
.https://regex101.com/r/nl5yl3/20