Pig Scripting - 将STRING转换为INT

时间:2016-01-17 18:41:22

标签: hadoop apache-pig

猪初学者,需要帮助

对于所有NON - AlphaNumeric,将STRING转换为INT           - 在不单独传递每个字段名称的情况下进行处理。

示例数据 -

00013425731998101620140402300032736901  00000000AAA001200X111685V00000000
00283335542006120920131010300030003105  00000000AAA001200X117407 00000000
00000000331998101620140402300033128107  00000000AAA001200X111685 00000000
00003902331999090620140402300032545208  00000000AAA001200X111685 00000000

它是一个fixedwidth文件,映射细节如下 -

orderNumber 1   9   
origin      10  10      
Startdate   11  18  
ModDate     19  26  
Identifier  27  36      
Code        37  38  
CodeType    39  40      
Number      41  48  
Num         49  114 

1 个答案:

答案 0 :(得分:0)

使用substr提取部件然后投射它们或使用正则表达式。例如,对于前两个字段:

input = load ... as (line:chararray);
a = foreach input generate SUBSTRING(line, 0, 9) as orderNumber:long, SUBSTRING(line, 9, 10) as origin:chararray;

这样您就可以将输入行的每个部分转换为所需的组件。

或者你可以编写一个UDF,它接受一个字符串作为输入并进行拆分并返回一个包或元组。