如何在piglatin中每次加载具有不同分隔符的文件 [英] how to load files with different delimiter each time in piglatin

查看:16
本文介绍了如何在piglatin中每次加载具有不同分隔符的文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

来自输入源的数据具有不同的分隔符,例如 , 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?

  1. 它将处理所有带有不同分隔符的输入文件
  2. 它也可以使用不同的分隔符处理相同的文件.

您可以在字符类 [,:,]

示例:

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)

这篇关于如何在piglatin中每次加载具有不同分隔符的文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆