我有一串::
分隔的单词。如何使用Hive
UDF
regexp_extract()
从字符串中提取单词?
答案 0 :(得分:5)
regexp_extract('2foa1fa::12hjk','^(\\w.*)\\:{2}(\\w.*)$',1) as word1
输出:2foa1fa
regexp_extract('2foa1fa::12hjk','^(\\w.*)\\:{2}(\\w.*)$',2) as word2
输出:12hjk
现在只需将你的列名称放在字符串文字的位置,你应该好好去。
您还可以使用拆分函数创建数组,然后按数组位置进行查询。看起来像这样:
select my_array[2] from
(select split('2foa1fa::12hjk','\\::') as my_array from my_table) b;
输出:12hjk