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