使用 hive sql 函数从单个单元格中提取单个字符串

问题描述 投票:0回答:1

我有一个单元格,其中包含多个用逗号分隔的字符串值。我只需要提取一个字符串。 例子: 单元格值:[{id=111,title=Arun.P,jobTitle=数据分析师}] 预期结果:Arun.P

SELECT regexp_extract(团队成员姓名, 'title=([^,]+)', 1) AS extract_title 来自表_a

错误:编译语句时出错:FAILED:ParseException 第 1:21 行无法识别表达式规范中“regexp_extract”“(”“team”附近的输入

hive extract
1个回答
0
投票

有点正确,您可以使用

REGEXP_EXTRACT
函数根据正则表达式提取子字符串。这是您的示例的一种可能有效的语法:

SELECT REGEXP_EXTRACT(`team member name`, 'title=([^,]+)', 1) AS extracted_title FROM table_a;

它与

'title=([^,]+)'
表中名为
team member name
的列中的正则表达式
table_a
匹配。正则表达式捕获“title=”后面的值,直到遇到逗号。

如果列名包含空格或特殊字符,请务必使用反引号。

这应该会给你预期的结果。如果您遇到任何问题或者数据结构发生变化,您可能需要相应地调整正则表达式。

© www.soinside.com 2019 - 2024. All rights reserved.