如何根据给定的格式在 pig 中组合两行?

Posted

技术标签:

【中文标题】如何根据给定的格式在 pig 中组合两行?【英文标题】:How to combine two lines in pig based on the given format? 【发布时间】:2016-07-06 20:58:59 【问题描述】:

我正在尝试处理文件。截至目前,我得到如下所示的输出。

input file:-
c=1,2,3
a,b,c,d,a
d,e,f
g,h,i,i
c=2,3,4
j,k,l
m,n,a,h
c=3,2,5
d,g,a
s,fs,a


    expecting an output like:-
    c=1,2,3,a,b,c,d,a
    c=1,2,3,d,e,f
    c=1,2,3,g,h,i,i
    c=2,3,4,j,k,l
    c=2,3,4,m,n,a,h
    c=3,2,5,d,g,a
    c=3,2,5,s,fs,a

有没有其他方法可以得到类似的输出。

    Another output format:-
    c=1,2,3,(a,b,c,d,a),(d,e,f),(g,h,i,i)
    c=2,3,4,(j,k,l),(m,n,a,h)
    c=3,2,5,(d,g,a),(s,fs,a)

谁能帮帮我。正在尝试使用猪,但离这个还很远,我正在尝试使用猪来解决这个问题以进行一些练习。

感谢和问候, 安库什·雷迪

【问题讨论】:

编写自己的 UDF。 【参考方案1】:

我认为猪不可能。 Pig 是并行处理,因此它无法知道文件中的记录顺序。所以我建议你在使用 pig 处理之前使用 bash 脚本或其他工具对其进行预处理。

【讨论】:

如果文件太大,那么我们也无法使用 bash 脚本处理它,这需要几个小时才能完成。任何其他建议@Duc LT。谢谢。

以上是关于如何根据给定的格式在 pig 中组合两行?的主要内容,如果未能解决你的问题,请参考以下文章

给定 Hadoop 中的阈值,如何使用 PIG 进行连接

如何根据pig中列的不同值拆分关系

如何根据给定的 json 格式排列数据帧

使用 PIG 或 HIVE 从 CSV 中删除前两行

根据后序和中序遍历输出先序遍历

PTA 根据后序中序遍历输出先序遍历