我有一个包含10,1900行的文件,其中Delimiter为5(' |')[显然现在有6列],我在第六列中有声明,如#34; Dropped 12(0.01 %)" !我渴望在隐藏在括号内后提取数字;
实际 - 下降12(0.01%)
预期 - 0.01
我需要使用Apache pig的解决方案。
答案 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 |
+---------+
我为(
和%)
之间的任何字符指定正则表达式捕获组。请注意,我使用\\
作为转义字符,以便匹配左括号和右括号。