我想根据col2中的条件,并在操作col2之后,通过拆分两个元组(或Pig中的任何名称)来运行Pig脚本,进入另一列,比较两个被操纵的元组并进行额外的排除。REGISTER/home/user1/piggybank.jar;log=LOAD'../user2/hadoop_file.txt'AS(col1,col2);--log=LIMITlog1000000;isnt_filtered=FILTERlogBY(NOTcol2=='Somevalue');isnt_generated=FOREACHisnt_filteredGENERATEcol2,col1,RANDOM()*1000
如何在PIG中的foreach中实现以下目标:REL=foreachRELS{if(cnt==0)limited_result=NULL/Empty;elselimited_result=LIMITresultscnt;generatelimited_result.some_field;}我不能使用LIMIT,因为它会验证“cnt”是否大于0;我尝试使用SPLIT,但显然它在foreach中不受支持。 最佳答案 在FOREACH之前FILTER怎么样?REL=foreach(filterRELSbycnt>0){limited_re
这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭9年前。所以我们已经编写了一个JNI,然后我们编写了一个UDF以便能够从ApachePig调用我们的JNI。现在的问题是我们得到这个错误,但只有当我们用多个map运行它时(只有一个map一切正常):Nativecodelibraryfailedtoload.java.lang.UnsatisfiedLinkError:Can'tloadlibrary:/usr/l
我想监控Pig作业的进度。大多数工作是在用Jython编写的UDF中完成的。有没有办法从JythonUDF中定义/增加Hadoop计数器?提前致谢。 最佳答案 我现在不能检查它(抱歉未经测试的代码),但是在Pig0.8的JavaUDF(非常相似)中它应该是这样的:publicclassINC_COUNTERextendsEvalFunc{@OverridepublicDataBagexec(Tupleinput)throwsIOException{PigStatusReporterreporter=PigStatusReporter
我在基于参数输入加载日志文件时遇到问题,想知道是否有人能够提供一些指导。有问题的日志是Omniture日志,存储在基于年月日的子目录中(例如/year=2013/month=02/day=14),文件名中带有日期戳。任何一天都可能存在多个日志,每个日志有数百MB。我有一个Pig脚本,它当前处理整个月的日志,并将月份和年份指定为脚本参数(例如/year=$year/month=$month/day=*)。它工作正常,我们对此非常满意。也就是说,我们想要切换到每周处理日志,这意味着之前的LOAD路径glob将不起作用(周可以包含几个月甚至几年)。为了解决这个问题,我有一个PythonUDF
我似乎无法弄清楚我哪里出了问题。该脚本非常适用于PigStorage,但为CSVLoader提供了这个ClassCastException。我检查了文档,但没有帮助。这是堆栈跟踪:PigStackTrace---------------ERROR1200:Pigscriptfailedtoparse:pigscriptfailedtovalidate:java.lang.ClassCastException:org.apache.pig.piggybank.storage.CSVLoadercannotbecasttoorg.apache.pig.StoreFuncInterfaceo
我正在尝试从IntelliJ中的源代码在本地运行apachepig。我想逐步完成单元测试。我已经完成了以下步骤:gitclonehttps://github.com/apache/pig.gitcdpig;gitcheckoutrelease-0.9.1ant在那之后有人有将其导入IntelliJ的说明吗?它使用ant从cmd行编译得很好。当我执行FILE->IMPORTPROJECT然后构建时,我遇到了提示重复类的复杂错误。我要做的就是在intellij中构建->MAKEPROJECT:/谢谢! 最佳答案 找到答案:git克隆ht
我有一个包含如下记录的输入文件:Movie1Actor1,Actor2,Actor3,......,ActornMovie2Actor1,Actor2,.......Actorn我想将这些数据加载到Pig中的一个包中movies=LOAD'movies.imdb'AS(......);我不确定如何填写我的“AS”字段,因为我的输入文件中的记录可能有可变数量的字段。 最佳答案 你可以这样做:movies=LOAD'movies.imdb'USINGPigStorage(',');如果记录没有固定字段,将无法使用AS
每当你下载Pig(例如从这里http://www.eng.lsu.edu/mirrors/apache/pig/)它始终包含Zebra和Hadoop。为什么Pig依赖于Zebra?(是吗?)斑马和pig有什么关系?我使用的是pig0.7,但需要升级到0.9.2+是否可以将旧版本的Zebra与新版本的Pig一起使用? 最佳答案 http://wiki.apache.org/pig/zebra我相信这是一个非常有用的工具,但不是必需的。Zebra主要是在hadoop之上使用非常方便的存储系统,pig可以利用zebra,但我认为它不必使用
玩Pig,我的输入文件是:1,4,61,2,7,92,5,11,3,5,12,6,2,8每一行的第一个值是ID;该行的其余部分只是唯一值(每行可以有不同数量的列)。我想把上面的转换成:1,2,4,6,7,9,3,5,12,5,1,6,2,8基本上按ID分组,然后展平其余列并将其输出为每一行。PIG在这里甚至是正确的方法吗?我有一种方法可以在M/R中执行此操作,但认为Pig可能是这类事情的理想选择。非常感谢提供的任何提示邓肯PS我不关心值的顺序。 最佳答案 未经测试,但这是我会采用的一般方法:获取一个包含ID和一袋值的变量,将其展平,