pig0.12.0-从字符串中提取最后两个字符

2w3kk1z5  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(408)

我正在使用 CDH 5.5 , Pig 0.12.0 . 我有一个 chararray 这样地: 25 - 45 我想从这个字符串中提取25和45。
所以,我这样做了:

minValue = (int)SUBSTRING(value,0,2);
maxValue = ((int)SUBSTRING(value,6,2);

我可以提取 minValue 但无法提取 maxValue i、 e.给定字符串的最后两个字符。
我也试过了,但这个也不行

maxValue = ((int)SUBSTRING(value,-2,2);

请让我知道如何使这项工作。

h43kikqp

h43kikqp1#

必须在子字符串函数中使用特定字符的索引。
这是你需要的。

maxValue = (int)SUBSTRING(value,5,7);
5tmbdcev

5tmbdcev2#

如果delimeter总是冒号(-),那么我们可以拆分和展平字符以提取最小值和最大值。

A = LOAD 'input.csv' USING PigStorage(',') AS (min_max:chararray);
B = FOREACH A GENERATE FLATTEN(STRSPLIT(min_max,' - ',0)) AS (min_val:chararray, max_val:chararray);
DUMP B;

输入:

25 - 45
35 - 65
45 - 85

输出:

(25,45)
(35,65)
(45,85)

相关问题