我希望能够对两个大文件进行标准比较。我有一些可以使用的东西,但它不如命令行上的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';谁有更好的方法来做到这一点?
在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
我想在Pig中解析一串复杂的JSON。具体来说,我希望Pig将我的JSON数组理解为一个包而不是单个字符数组。使用JsonLoader时,我可以通过指定模式轻松地做到这一点,如thisquestion.有没有办法让Pig为我找出我的模式,或者在Pig解析字符串时指定它?我一直在使用JsonStringToMap,但无法找到一种方法来指定架构,或者让它正确理解我的JSON数组是一个数组而不是单个字符数组。 最佳答案 我最终使用了JsonTupleMap()在Mozilla'sAkelalibraryforpig.它通过解析我所有的JS
我正在使用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的绝对初学者,我只是在做一些简单的测试,但是,我发现错误消息并没有提供非常有用的信息。我在CentOS6.4VM上以单节点模式设置了我的Hadoop环境,有4Gb可用内存。我正在尝试在一个500MbCSV文件上运行一个简单的Pig脚本。我有两个500Mb的文件,在第一个上,脚本成功了。在第二个上,它的大小大致相同,但数据不同(行数更多),当执行达到大约60%时出现错误。这是我使用的(非常简单的)Pig脚本:records=LOAD'trans2013.csv'USINGPigStorage(',')AS(podracun_v_breme,datum_transakcij
我在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"}]}我们将不胜感激。 最佳答案 如果您已经定义了模式,那么
将这些视为我的输入文件,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
我需要在运行我的PIG作业后更改零件文件命名约定。我希望part-r-0000成为userdefinedName-r-0000。有什么可能的解决方案吗?我正在避免使用hadoop-cp和hadoop-mv命令。谢谢 最佳答案 此文件由Pig生成的map-reduce作业创建。所以你应该配置ApacheMap-reduce。对应的属性是mapreduce.output.basename您可以直接在pig脚本中定义任何Hadoop属性:SETmapreduce.output.basename'custom-name';
我们将日志存储在S3中,我们的(Pig)查询之一将获取三种不同的日志类型。每种日志类型都位于基于类型/日期的子目录集中。例如:/logs//////lots_of_logs_for_this_hour_and_type.log*我的查询想要在给定时间内加载所有三种类型的日志。例如:type1=load's3:/logs/type1/2011/03/08'as...type2=load's3:/logs/type2/2011/03/08'as...type3=load's3:/logs/type3/2011/03/08'as...result=jointype1...,type2,etc
我有一个简单的python脚本(moo.py),我正在尝试流式传输importsys,osforlineinsys.stdin:print1;然后我尝试运行这个pig脚本DEFINECMD`pythonmoo.py`ship('moo.py');data=LOAD's3://path/to/my/data/*'AS(a:chararray,b:chararray,c:int,d:int);res=STREAMdatathroughCMD;dumpres;当我在本地运行这个pig脚本时(pig-xlocal)一切正常,但是当我在没有-xlocal的情况下运行它时,它会打印出这个错误[ma