我的数据格式如下:student_id,course_id,grade,other_information。这适用于大量学生,比如数十亿。我编写了一个perl脚本来为学生处理数据。所以想到使用hadoop框架通过将每个学生的数据流式传输到perl脚本来加速这个过程。我是这样的:student_data=LOAD'source'usingPigStorage('\t')As(stud_id:string,...)grp_student=groupstudent_databystud_id;final_data=foreachgrp_student{flat_data=flatten(gr
很多时候我们有兴趣获取一组的顶部或底部(在orderby之后),这些集合在排序之前已经按某些键分组。A=FOREACHdataGENERATEx,y,z;B=DISTINCTA;C=GROUPBBY(x,y)PARALLEL11;D=FOREACHC{ORDERD=ORDERBBYzDESC;FIRST_REC=LIMITORDERD1;GENERATEFLATTEN(FIRST_REC)AS(x,y,z);};STOREDINTO'xyz'USINGPigStorage();上面的foreach生成需要“永远”完成,并最终在12小时左右后被杀死。负责这件事的mapreduce作业生成
这个下面的程序我正尝试在ApachePig中按原样和非结构化数据执行它i)我有包含街道名称、城市和州的数据集:ii)按州分组iii)我在数据集中获取COUNT(*)个状态现在我的o/p将类似于statename,count===>该状态在数据集中可用的时间程序:realestate=LOADDATAusingpigstorage(',')as(street:string,citystring,statestring);A=GROUPrealestatebystate;B=FOREACHAGENERATEgroup,count(*)O/P会像CA,14washington,20现在我需要
假设我在apachepig中有以下输入:(123,((1,2),(3,4)))(666,((8,9),(10,11),(3,4)))我想将这两行转换为以下7行:(123,(1,2))(123,(3,4))(666,(8,9))(666,(10,11))(666,(3,4))即这有点像“做与GROUP相反的事情”。这在pig拉丁语中可能吗? 最佳答案 看看FLATTEN.它可以满足您可能需要的功能。但是,使用上面的符号,元组列表看起来像是一个元组。这应该是一个包才能正常工作。代替:(123,((1,2),(3,4)))(666,((8
我有表单的输入记录2013-07-09T19:17Z,f1,f22013-07-09T03:17Z,f1,f22013-07-09T21:17Z,f1,f22013-07-09T16:17Z,f1,f22013-07-09T16:14Z,f1,f22013-07-09T16:16Z,f1,f22013-07-09T01:17Z,f1,f22013-07-09T16:18Z,f1,f2这些代表时间戳和事件。我手写了这些,但实际数据应该根据时间排序。我想生成一组记录,这些记录将输入到需要连续时间序列的绘图函数中。我想填写缺失值,即如果有“2013-07-09T19:17Z”和“2013-0
这里是PigLatin的初学者。我正在尝试计算输入文件中多个字符串的出现次数。现在搜索必须不区分大小写。我知道pig中有一个LOWER内置函数,但我该如何使用它呢?例如(输入文件):28-Oct-13,7:00PM,Viraj,Newtohadoop!Eagertolearn.31-Dec-14,3:00PM,Vanguard,Designers,Developers,Doers,don'tmissthisupcomingSanFranciscoHadoop我需要像hadoop,dec,learn,python这样的字符串数hadoop2dec1learn1python0如何使用pi
SQLSELECTm.x,m.y,n.a,n.bfrommydata1m,mydata2nWHEREm.x=n.aANDm.y>=n.ypigA=LOAD'mydata1'AS(x:int,y:datetime);B=LOAD'mydata2'AS(a:int,b:datetime);我现在需要使用上述sql条件连接两个表。我将如何使用连接条件在PIG中实现上述逻辑? 最佳答案 试试这个:A=LOAD'mydata1'AS(x:int,y:datetime);B=LOAD'mydata2'AS(a:int,b:datetime);C
我需要“转置”如下所示的数据:idCity111Chicago111NewYork111LA222Paris222London222Tokyo到:111ChicagoNewYorkLA222ParisLondonTokyo每个id都有三个条目,因此生成的关系将有4个字段。我试图避免使用UDF。有任何想法吗? 最佳答案 这不是基本分组吗?B=GROUPABYid检查http://pig.apache.org/docs/r0.7.0/piglatin_ref2.html#GROUP 关于ha
我正在对一些数据集进行一些转换,需要发布为一种看起来很正常的格式。当我运行describe时,当前我的最终设置看起来像这样:{memberId:long,companyIds:{(subsidiary:long)}}我需要它看起来像这样:{memberId:long,companyIds:[long]}companyIds是long类型ID数组的键?我真的在为如何以这种方式操纵事物而苦苦挣扎?有任何想法吗?我试过使用FLATTEN和其他命令来了解是否有用。我正在使用AvroStorage将文件写入此模式:我需要将此数据写入的字段架构如下所示:"fields":[{"name":"mem
如果文件中有重复项,则第一个记录应转到有效文件,其余重复记录应使用PIG脚本移至无效文件。场景如下。Input:Acc|Phone|Name1234|333-444-5555|XYZ4567|222-555-1111|ABC1234|234-123-0000|DEF9999|123-456-1890|PQR8734|456-879-1234|QWE4567|369-258-0147|NNN1234|987-654-3210|BLSoutput:Twofiles1.Validrec:1234|333-444-5555|XYZ4567|222-555-1111|ABC9999|123-45