我正在尝试使用com.mongodb.hadoop.pig.BSONLoader(https://github.com/mongodb/mongo-hadoop/blob/master/pig/README.md)将数据从MongoDBBSON文件加载到Pig中,但我遇到了困难。MongoDB上的数据包括可变大小的数组,我不确定如何将其加载到pig中(作为元组?)。这是来自MongoDB的示例记录:{"_id":{"$oid":"52fbbca6e4b029a79cd17ff7"},"field":"value","variableSizeArray":["value1","value
在Hadoop上的Pig中,我有一个应用于大元组的JavaUDF,它仅采用大元组的4个字段,并且(在一些重要的计算之后)返回两个新值,我附加到大元组上。没有减少阶段。CanthisbenefitfrombeingmadeAlgebraic,orAccumulative?在没有任何分组的情况下,我看不出它会如何提高速度。似乎分组只是为了尝试获得加速是在错误方向上的巨大飞跃。 最佳答案 不,我认为您正在创建一个常规的EvalFunc。使其成为Algebraic或Accumulative是没有意义的。LOWER或REGEX_EXTRACT
这里的COGROUP运算符是如何工作的?在最后两行输出中我们如何以及为什么得到空包(没有网站详细解释COGROUP中的数据排列)?A=load'student'as(name:chararray,age:int,gpa:float);B=load'student'as(name:chararray,age:int,gpa:float);dumpB;(joe,18,2.5)(sam,,3.0)(bob,,3.5)X=cogroupAbyage,Bbyage;dumpX;(18,{(joe,18,2.5)},{(joe,18,2.5)})(,{(sam,,3.0),(bob,,3.5)},
我知道Pig在完成这些场景时会返回不同的代码:返回代码0:所有作业都成功返回码1:用于可恢复的错误返回代码2:所有作业均已失败返回码3:部分作业失败在我的代码中,我想根据MapReduce作业的成功采取适当的操作。如何着手去做?Pig错误保存在日志中,但是,我应该使用什么机制来了解成功执行的pig脚本? 最佳答案 如果您使用shell脚本运行pig脚本,您可以检查上次执行的脚本的状态,如果返回0,那么您只能继续执行第二步,如果第一步失败,它会显示一条错误消息。./pig_script.shif[$?-eq0];thenecho"Su
我刚学pig;我怎么能接受这个:((a,b),c,(x,y),z)得到这样的东西:(a,b,c,x,y,z,ABS(c-z)) 最佳答案 和你写的差不多。A=load'foobar'as(t:((a:double,b:double),c:double,(x:double,y:double,)z:double));B=foreachAgenerateflatten(t);C=foreachBgeneratea,b,c,x,y,z,ABS(c-z);我假设double作为值的数据类型。不能100%确定展平,这取决于您的确切模式,这可能会
我有一个中间pig结构(A,B,(n.无Cs))示例:(a1,b1,(c11,c12))(a2,b2,(c21))(a3,b3,(c31,c32,c33))现在,我想要格式的数据(a1,b1,c11)(a1,b2,c12)(a2,b2,c21)etc.我该怎么做?基本上我想要元组的大小,然后使用这个大小来运行嵌套的for循环。 最佳答案 你能试试下面的方法吗?输入a1b1(c11,c12)a2b2(c21)a3b3(c31,c32,c33)PigScript:A=LOAD'input'AS(f1,f2,T:(f3:chararray
我正在使用受kerberos保护的hadoop-2.6.0和pig版本0.13.0。我在hdfs中有一个文件,如下所示计数1,ck2,secondpig脚本a=load'/user/username/newtable';b=distincta;dumpb;异常2015-02-0311:34:45,237[main]INFOorg.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher-100%complete2015-02-0311:34:45,431[main]ERRORorg.apache
我有一个这种格式的记录:{(LarryPage),23,M}{(SumanDey),22,M}{(PalaniPratap),25,M}我正在尝试使用此LOAD记录:records=LOAD'~/Documents/PigBag.txt'AS(details:BAG{name:tuple(fullname:chararray),age:int,gender:chararray});但是我收到了这个错误:2015-02-0420:09:41,556[main]ERRORorg.apache.pig.tools.grunt.Grunt-ERROR1200:mismatchedinput',
我下载了pig0.14.0,我在MACOSX上运行Hadoop2.6.0。我在https://github.com/ucbtwitter/getting-started/wiki/Installing-Pig遵循了PIG的所有安装步骤。.我已经如前所述正确设置了JAVA_HOME。即使在运行ant“-Dhadoopversion=23jar”命令后,我仍收到相同的错误“找不到pig-core-h2.jar。执行‘ant-Dhadoopversion=23jar’,然后重试”。 最佳答案 这个错误不断出现找不到pig-core-h2.
我在文件中有Pig脚本序列,我想从Shell脚本中执行它它执行pig脚本sqeuenciatly。例如:shscript.sh/it/provider/file_namePIGddl.txt假设PIGddl.txt有像这样的Pig脚本记录数无效验证等如果所有Pig查询都在一个文件中,那么如何从Shell脚本执行pig脚本? 最佳答案 下面的想法可行,但如果您想要顺序流程,例如如果1执行则执行2否则执行3种流程,您可以使用Oozie来运行和调度作业。#!/bin/shx=1while[$x-le3]doecho"pig_dcnt$x.