我的问题是如何正确使用SerDeProperties来解析下面的行。我尝试了多种变体,并继续用空值填充我的表。下面我有SerDe和样本数据。在([^\s]*)
空白^
匹配0个或更多字符\s
之前,*
应保持原状。同样,下一个正则表达式应该在下一列
我的意图是将数字分成一列,将其他所有内容分成另一列。我对塞尔德的解释有什么问题?
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'
WITH SERDEPROPERTIES ("input.regex" = "([^\s]*) ([^\n]*)");
1134999 06Crazy Life
6821360 Pang Nakarin
10113088 Terfel, Bartoli- Mozart: Don
10151459 The Flaming Sidebur
6826647 Bodenstandig 3000
10186265 Jota Quest e Ivete Sangalo
6828986 Toto_XX (1977
答案 0 :(得分:0)
尝试这个(或类似的东西):
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "(\\d+) ([^\\n]*)",
"output.format.string" = "%1$s %2$s"
)
STORED AS TEXTFILE;