本文介绍了如何每次在明胶中加载具有不同分隔符的文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
来自输入源的数据具有不同的分隔符,例如OR;有时它可能是; 。但PigStorage函数一次仅接受一个参数作为分隔符。如何加载这种数据[带分隔符,OR; ]
Data from input sources have different delimiters like , OR ; .Sometime it may be , sometimes it may be ; .But PigStorage function accepts only single argument as delimiter at a time. How to load this kind of data [ with delimiter , OR ; ]
推荐答案
Can you check if this works for you?
- 它可以处理所有具有不同分隔符的输入文件
- 它可以使用具有不同分隔符的相同文件。
您可以在字符类 [,:,]
中添加任意数量的分隔符。
You can add as many delimiters inside character class [,:,]
示例:
Example:
input1.txt
1,2,3,4
input2.txt
a-b-c-d
input3.txt
100:200:300:400
input4.txt
100,aaa-200:b
PigScript:
A = LOAD 'input*' AS line;
B = FOREACH A GENERATE FLATTEN(REGEX_EXTRACT_ALL(line,'(.*)[,:-](.*)[,:-](.*)[,:-](.*)')) AS (f1,f2,f3,f4);
DUMP B;
Output:
(1,2,3,4)
(a,b,c,d)
(100,200,300,400)
(100,aaa,200,b)
这篇关于如何每次在明胶中加载具有不同分隔符的文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!