草庐IT

PIG_HOME

全部标签

java - Apache Pig UDF 解析问题

我有以下Java代码(返回固定值用于测试):静态.javapackagecom.company;importjava.io.IOException;importorg.apache.pig.EvalFunc;importorg.apache.pig.data.Tuple;importorg.apache.pig.impl.util.WrappedIOException;publicclassStaticextendsEvalFunc{publicStringexec(Tupleinput)throwsIOException{if(input==null||input.size()==0

hadoop - 如何在 Pig (Hadoop) 中的组函数之后创建一组值

假设我在file.txt中有一组值一、二、三一、二、二k,l,mk,l,nk,l,o我的代码是:file=LOAD'file.txt'使用PigStorage(',');events=foreachfilegeneratesession_id,user_id,code,type;gr=按(session_id,user_id)对事件进行分组;我有一组值:((a,b),{(a,b,c),(a,b,d)})((k,l),{(k,l,m),(k,l,n),(k,l,o)})我想要:(a,b,(c,d))(k,l,(m,n,o))你知道怎么做吗?问候帕维尔 最佳答案

hadoop - 如何在 PIG 中的键匹配时对特定列求和

我有如下示例数据:(id,code,key,value)1,A,p,102,B,q,203,B,p,303,B,q,203,C,t,603,C,q,20将其存储到PIG后,我需要如下输出:O/P:(A,{(p,10)})(B,{(q,40),(p,30)})(C,{(t,60)},(q,20))我们可以删除id,并需要将与特定代码的键匹配的所有值的总和相加的输出。在上面的例子中我们可以看到对于代码B-q,20是两次,因此添加并成为q,40。下面是我的代码,但无法获得准确的输出:Lo=load'pivot.txt'usingPigStorage(',')as(id:chararray,c

hadoop - 相当于 Apache Pig 中的 linux 'diff'

我希望能够对两个大文件进行标准比较。我有一些可以使用的东西,但它不如命令行上的diff快。A=load'A'as(line);B=load'B'as(line);JOINED=joinAbylinefullouter,Bbyline;DIFF=FILTERJOINEDbyA::lineisnullorB::lineisnull;DIFF2=FOREACHDIFFGENERATE(A::lineisnull?B::line:A::line),(A::lineisnull?'REMOVED':'ADDED');STOREDIFF2into'diff';谁有更好的方法来做到这一点?

hadoop - 把东西从 pig 的袋子里拿出来

在pig的例子中:A=LOAD'student.txt'AS(name:chararray,term:chararray,gpa:float);DUMPA;(John,fl,3.9F)(John,wt,3.7F)(John,sp,4.0F)(John,sm,3.8F)(Mary,fl,3.8F)(Mary,wt,3.9F)(Mary,sp,4.0F)(Mary,sm,4.0F)B=GROUPABYname;DUMPB;(John,{(John,fl,3.9F),(John,wt,3.7F),(John,sp,4.0F),(John,sm,3.8F)})(Mary,{(Mary,fl,3

json - 在 Pig 中解析复杂的 JSON 字符串

我想在Pig中解析一串复杂的JSON。具体来说,我希望Pig将我的JSON数组理解为一个包而不是单个字符数组。使用JsonLoader时,我可以通过指定模式轻松地做到这一点,如thisquestion.有没有办法让Pig为我找出我的模式,或者在Pig解析字符串时指定它?我一直在使用JsonStringToMap,但无法找到一种方法来指定架构,或者让它正确理解我的JSON数组是一个数组而不是单个字符数组。 最佳答案 我最终使用了JsonTupleMap()在Mozilla'sAkelalibraryforpig.它通过解析我所有的JS

hadoop - Pig 10.0 - 将元组分组并合并到 foreach 中

我正在使用Pig10.0。我想在foreach中合并包。假设我有以下visitors别名:(a,b,{1,2,3,4}),(a,d,{1,3,6}),(a,e,{7}),(z,b,{1,2,3})我想在第一个字段上对元组进行分组,并将包与一组语义合并以获得以下元组:({1,2,3,4,6,7},a,6)({1,2,3},z,3)第一个字段是具有集合语义的包的并集。元组的第二个字段是组字段。第三个字段是包中元素的数量。我围绕以下代码尝试了几种变体(将SetUnion替换为Group/Distinct等),但始终无法实现所需的行为:DEFINESetUniondatafu.pig.bags

Hadoop: pig 错误

我是Hadoop的绝对初学者,我只是在做一些简单的测试,但是,我发现错误消息并没有提供非常有用的信息。我在CentOS6.4VM上以单节点模式设置了我的Hadoop环境,有4Gb可用内存。我正在尝试在一个500MbCSV文件上运行一个简单的Pig脚本。我有两个500Mb的文件,在第一个上,脚本成功了。在第二个上,它的大小大致相同,但数据不同(行数更多),当执行达到大约60%时出现错误。这是我使用的(非常简单的)Pig脚本:records=LOAD'trans2013.csv'USINGPigStorage(',')AS(podracun_v_breme,datum_transakcij

arrays - 将 Pig 输出转换为 JSON 格式

我在Pig中将以下输出存储在一个变量中:("Keyword",{(data1,data2,data3,data4),(data1,data2,data3,data4)})期望以JSON格式输出:{"keyword":[{"val_1":"data1","val_2":"data2","val_3":"data3","val_4":"data4"},{"val_1":"data1","val_2":"data2","val_3":"data3","val_4":"data4"}]}我们将不胜感激。 最佳答案 如果您已经定义了模式,那么

hadoop - 如何在不使用 UDF 的情况下在 PIG 中获取匹配值?

将这些视为我的输入文件,Input1:(File1)12,23,14,15,91,2,3,4,534,17,8..Input2:(File2)12Twelve23TwentyThree34ThirtyFour..我将使用我的PIG脚本从“输入1”文件中读取每一行,我希望根据“输入2”文件获得如下结果。Output:Twelve,TwentyThree,Fourteen,Fifteen,NineOne,Two,Three,Four,Five..没有UDF是否可以实现这个?请让我知道您的建议。提前致谢! 最佳答案 这违反了您的“无UDF