我下载了PIG0.14并做了一个ant-dhadoopversion=23jar,但是当我在Hadoop2.4上使用它时它不起作用。除了运行ant之外,还有什么我应该做的吗?Pig正在运行,但显示错误ang.IncompatibleClassChangeError:找到接口(interface)org.apache.hadoop.mapreduce.JobContext,但类是预期的谢谢! 最佳答案 如果您从SVN主干checkoutPig,您可以验证它使用的Hadoop版本$PIG_HOME/ivy/libraries.prope
我需要在没有手动交互的情况下按顺序运行pig作业。你能告诉我有没有办法通过使用pig或其他方式来自动化pig工作承担工作:工作001职位002职位003JOB004JOB001--是我的第一个JOB-->成功运行'JOB001'后它应该触发'JOB002'JOB002-->成功运行'JOB002'后应该触发'JOB003'JOB003-->成功运行'JOB003'后它应该触发'JOB004'。 最佳答案 Oozie是适合您的工具。只需创建一个将一个Pig作业连接到另一个的工作流。 关于h
我正在学习ApachePig,在实现我的愿望时遇到了问题。我有这个对象(在执行GROUPBY之后):MLSET_1:{groupchararray,MLSET:{(key:chararray,text:chararray)}}我只想在某个模式(PATTERN_A)出现在文本中并且另一个模式(PATTERN_B)未出现在一个键的文本字段中时才生成key。我知道我可以使用MLSET.text获取特定键的所有文本值的元组,但是关于如何从元组中筛选项目列表,我仍然遇到同样的问题。这是一个例子:(key_A,{(key_A,start),(key_A,stop),(key_A,unknown),
如何为此编写pig脚本?我有一个文本文件,其中包含彼此为friend的用户的ID例如(数据.txt)idid12131421253148所以用户id1是3个人的friend,用户id2是2个人的friend等等......我想计算并按递减顺序列出最大好友数以及有多少用户拥有那么多好友所以是这样的:1个用户有3个friend,1个用户有2个friend,2个用户有1个friend试图获得这样的列表numberofusernumberoffriends(highestfirst)131221感谢任何帮助 最佳答案 你能试试这个吗?输入.
我正在尝试将一袋元组转换为单个元组:grunt>describeB;B:{Comment:{tuple_of_tokens:(token:chararray)}}grunt>dumpB;({(10),(123),(1234)})我想从B得到(10,123,1234)。我试过使用FLATTEN但这为包中的每个元组提供了一个新行,这不是我想要的。有没有办法在不使用UDF的情况下进行这种转换?提前致谢! 最佳答案 BagToTuple()函数在piggybank中已经可用,您只需下载pig-0.11.0.jar并将其设置在您的类路径中。为
我正处于学习Pig/PigLatin的早期阶段,所以请原谅我缺乏知识。如果我们有一个格式如下的数据集:fname,lname,month,pay,emp_categoryBob,Smith,2000年1月,非经理Bob,Smith,2000年2月,非经理John,Doe,January,4500,经理John,Doe,February,4500,manager我看到我将如何计算每个员工的总工资,如果我想创建一个数据集,该数据集还从每个员工的总工资中减去每个员工的总工资:Bob,Smith4000,非经理,JohnDoe,9000,经理,5000使用SQL我可能只创建两个临时表:SELE
在我的Pig脚本中,有一个中间步骤,我想将生成的服务器主机名映射到应用程序名称。我有一个使用此映射从数据库创建的文本文件(~10k条记录)。但我不确定如何将此文本文件分发到pig中并在运行时访问它们。请帮助..!! 最佳答案 这是使用Pig的fragment-replicatejoin的完美用例算法。您只需将查找表加载为Pig关系并将其与您的实际数据结合起来。A=LOAD'data1'USING...AS...;B=LOAD'lookuptable'USING...AS...;C=JOINABYjoin_key,BBYjoin_ke
这是我要运行的行counts=FOREACHz{sum=SUM(B::counter);GENERATEgroupasA::month,sum;};但是我收到以下错误:Invalidfieldprojection.Projectedfield[B::counter]doesnotexistinschema:group:chararray,y:bag{:tuple(A::id:chararray,A::month:chararray,B::counter:int)}.如何对这样一个包含基于一列分组的元组包的模式进行求和聚合? 最佳答案
这是我正在处理的示例数据:PeterWilkerson27MJamesOwen26MMattWo30MKennyChen28M我创建了一个简单的UDF来像这样过滤年龄:publicclassIsApplicableextendsFilterFunc{@OverridepublicBooleanexec(Tupletuple)throwsIOException{if(tuple==null||tuple.size()>0){returnfalse;}try{Objectobject=tuple.get(0);if(object==null){returnfalse;}intage=(In
我如何在PIG中连接一个变量和一些硬编码值A=LOAD'data'as(f1:chararray,f2:chararray,f3:chararray);X=FOREACHAGENERATECONCAT("BIG",f3);预期输出:(Apache,开放,大源)(hadoop,map,BIGreduce)(pig,pig,BIGlatin) 最佳答案 Pig不支持双引号,因此您需要将硬编码值从双引号更改为单引号。X=FOREACHAGENERATEf1,f2,CONCAT('BIG',f3);更新:您可以使用REPLACE函数从输入中