我用正则表达式试图提取Country
。使用正则表达式蜂巢查询:
select regexp_extract(column,'\/(.*)/.*/.*/.*/',1) from substring_tbl;
我创建表的语句:
create external table substring_tbl(
column string)
LOCATION '/user/root/hive_substring/';
输入数据:
/Country/State/City/Suburb/Street
查询和正则表达式来提取所需要的数据:
select regexp_extract(column,'\/(.*)/.*/.*/.*/',1) from substring_tbl;
输出:
Country
信息:regexp_extract()
返回使用图案中提取的字符串。有关regexp_extract()
的更多详细信息,请访问hive LanguageManual+UDF
但是,如果您将输入数据更改为其他形式,则还必须更改正则表达式。
使用split()
函数来提取所需的数据UPDATE1
查询。
select split(column, '\\/')[1] from substring_tbl;
'split()'就像它变得简单一样。 – gobrewers14