草庐IT

PIG_FEATURE

全部标签

hadoop - 在 EMR 上运行 Pig 脚本

所以我使用以下文件作为输入:https://svn.apache.org/repos/asf/pig/trunk/tutorial/data/excite-small.log我现在的代码是--FileName:excite-small.loglog=LOAD'excite-small.log'AS(user,timestamp,query);grpd=GROUPlogBYuser;cntd=FOREACHgrpdGENERATEgroup,COUNT(log);STOREcntdINTO'output'我使用http://docs.aws.amazon.com/ElasticMapRe

hadoop - 如何用 Pig 将 (A, B, C) 变成 (AB, AC, BC)?

在Pig中,给定以下Bag:(A,B,C),我能否以某种方式计算所有值的唯一组合?我正在寻找的结果类似于(AB,AC,BC)。我忽略了BA、CA、CB,因为如果按字母顺序排序,它们将成为现有值的副本。 最佳答案 做这样的事情的唯一方法是编写一个UDF。这将完全按照您的要求进行:publicclassCombinationsUDFextendsEvalFunc{publicDataBagexec(Tupleinput)throwsIOException{ListbagValues=newArrayList();Iteratoriter

hadoop - PIG Group - 无法获得多个字段

我想知道谁在每个部门领取最高薪水-我正在获得每个部门的最高薪水,但无法获得其中的名字....使用pig脚本附加文件EmpData=LOAD'/data/EmpDet3.csv'usingPigStorage(',')as(fname:chararray,lname:chararray,position:chararray,dept:chararray,salary:chararray);Grp_Dept=GROUPEmpDatabydept;EmpDataC=FOREACHEmpDataGENERATEfname,lname,position,dept,(int)SUBSTRING(s

hadoop - 使用 hadoop/pig 从日志中提取相似用户

作为启动产品的一部分,我们需要计算“相似用户特征”。我们决定选择pig。我已经学习pig几天了,了解它是如何工作的。所以从这里开始是日志文件的样子。userurltimeuser1http://someurl.com1235416user1http://anotherlik.com1255330user2http://someurl.com1705012user3http://something.com1705042user3http://someurl.com1705042由于用户和url的数量可能很大,我们不能在这里使用暴力破解方法,所以首先我们需要找到至少可以访问公共(publi

hadoop - 按顺序运行多个 Pig 脚本的方法有哪些?

我需要在Hadoop中顺序运行一些Pig脚本。它们必须单独运行。有什么建议吗?更新只是一个快速更新,我们正在努力从一个Java类运行Pig脚本。Oozie是评论中提到的一种可能性(尽管对我们的需求来说太重了)。我还听说可以在Cascading(http://www.cascading.org/)中将Pig脚本编排为更大工作流程的一部分,并对此进行了一些研究。 最佳答案 对于一个简单的任务序列,我想orangeoctopus建议的可能就足够了。如果您想将更复杂的pig和/或普通MapReduce工作流组合在一起,您可能应该看看Oozi

hadoop - 在 Pig-Latin 中的 FOREACH 失败后使用 FILTER

我是Pig-Latin的初学者,我发现了一个关于FILTER语句的问题。看例子:假设我们有一个数据文件(test.txt),其内容是:1,2,32,3,43,4,54,5,6我想选择第一个字段为“3”的记录。Pig脚本是:t=LOAD'test.txt'USINGPigStorage(',');t1=FOREACHtGENERATE$0ASi0:chararray,$1ASi1:chararray,$2ASi2:chararray;f1=FILTERt1BYi0=='3';DUMPf1任务运行良好,但输出结果为空。EXPLAINf1显示:#-----------------------

hadoop - 检索 PIG 中出现频率最高的值

如果我有以下数据集:c1c2------15151629293132我想为第一列(c1)中的每个值返回第二列(c2)中出现频率最高的值。所以我希望返回的数据集看起来像下面这样,因为对于c1=1,值“5”出现两次,值“6”只出现一次,对于c1=2,值“9”出现两次,没有出现其他值:152931我遇到问题的情况是出现次数相等(在本例中c1=3。)在情况(c1=3)中c2中出现次数相等的情况下,我只想返回第一次出现。任何想法都会有所帮助。 最佳答案 假设你的c1和c2在A上:B=GROUPABY(c1,c2)C=FOREACHBGENER

hadoop - Pig DUMP 卡在 GROUP 中

我是PIG初学者(使用pig0.10.0),我有一些简单的JSON,如下所示:测试.json:{"from":"1234567890",....."profile":{"email":"me@domain.com".....}}我在pig身上进行了一些分组/计数:>pig-xlocal使用以下PIG脚本:REGISTER/pig-udfs/oink.jar;REGISTER/pig-udfs/json-simple-1.1.jar;REGISTER/pig-udfs/guava-12.0.jar;REGISTER/pig-udfs/elephant-bird-2.2.3.jar;use

hadoop - 如何在成功时保留 PIG 作业日志文件。

我注意到当运行PIG脚本时出现错误时,会生成并保存日志。但是当没有错误时,日志文件被删除。有没有办法在作业成功时保留日志文件? 最佳答案 默认情况下,错误(例如:脚本解析错误)记录到pig.logfile中,可以在$PIG_HOME/conf/pig.properties中设置。如果您还想记录状态消息,请准备一个有效的log4j.properties文件并将其设置在log4jconf属性中。例如:将$PIG_HOME/conf中的log4j.properties.template重命名为log4j.properties并设置以下内容

hadoop - pig : Perform task on completion of UDF

在Hadoop中,我有一个看起来像这样的Reducer,用于将数据从先前的映射器转换为一系列非InputFormat兼容类型的文件。protectedvoidsetup(Contextcontext){LocalDatabaseld=newLocalDatabase("localFilePath");}protectedvoidreduce(BytesWritablekey,Textvalue,Contextcontext){ld.addValue(key,value)}protectedvoidcleanup(Contextcontext){saveLocalDatabaseInHD