特定字符串

时间:2018-02-10 05:51:11

标签: apache-pig

我有一个包含10,1900行的文件,其中Delimiter为5(' |')[显然现在有6列],我在第六列中有声明,如#34; Dropped 12(0.01 %)" !我渴望在隐藏在括号内后提取数字;

实际 - 下降12(0.01%)

预期 - 0.01

我需要使用Apache pig的解决方案。

1 个答案:

答案 0 :(得分:0)

您正在寻找REGEX_EXTRACT功能。

我们假设您有一张表A,如下所示:

+--------------------+
|        col1        |
+--------------------+
| Dropped 12 (0.01%) |
| Dropped 24 (0.02%) |
+--------------------+

您可以使用以下内容在括号中提取数字:

B = FOREACH A GENERATE REGEX_EXTRACT(col6, '.*\\((.*)%\\)', 1);

+---------+
| percent |
+---------+
| 0.01    |
| 0.02    |
+---------+

我为(%)之间的任何字符指定正则表达式捕获组。请注意,我使用\\作为转义字符,以便匹配左括号和右括号。