hadoop - 如何在 Pig latin 中每次加载具有不同分隔符的文件

标签 hadoop apache-pig

来自输入源的数据有不同的分隔符,例如 , OR ; .有时可能是,有时可能是; .但是 PigStorage 函数一次只接受一个参数作为分隔符。如何加载这种数据 [ 带分隔符 , OR ; ]

最佳答案

你能检查一下这是否适合你吗?

  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)

关于hadoop - 如何在 Pig latin 中每次加载具有不同分隔符的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26354949/

相关文章:

hadoop - 用于查找每个部门薪水的最大值、最小值、平均值、总和的 Pig 脚本

java - PIG UDF导入解析

hadoop - Apache Pig 没有完全解析元组

hadoop - 由于错误 JA017,Oozie 工作流失败

hadoop - hadoop datanode无法从无效位置启动

scala - Spark SBT 程序尝试从本地文件系统而不是 IntelliJ 项目中的 hdfs 读取

apache - 无法获取文件名问题的 VFS 文件对象

java - Java Date 和 Joda Date 时间的区别

hadoop - 尝试Edureka教程的Pig错误

hadoop - 在 Apache pig 工作中获取今天的日期