假设我在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
我正在尝试提取字符串的某些部分并将其存储到列中的hbase。文件内容:msgType1PersonxyzhasopenedInternet:www.google.comfromIP:192.123.123.123forduration00:15:00msgType2PersonxyzdeniedforopeningInternet:202.x.x.xfromIP:192.123.123.123reason:unautheticatedmsgType1PersonxyzhasopenedInternet:202.x.x.xfromIP:192.123.123.123forduration
我有表单的输入记录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
我写了这个在0.12.0版本上完美运行的pig脚本,但我不能让它在0.11.1上运行我无法确定真正缺少的是什么。data=LOAD''USINGPigStorage(',')AS(Year,Month:int,DayofMonth,DayOfWeek,DepTime,CRSDepTime,ArrTime,CRSArrTime,UniqueCarrier,FlightNum,TailNum,ActualElapsedTime,CRSElapsedTime,AirTime,ArrDelay:int,DepDelay,Origin,Dest,Distance,TaxiIn,TaxiOut,C
在HBaseshell中,我通过以下方式创建了我的表:create'pig_table','cf'在Pig中,这是我希望存储到pig_table中的别名的结果:DUMPB;生成包含6个字段的元组:(D1|30|2014-01-0113:00,D1,30,7.0,2014-01-0113:00,DEF)(D1|30|2014-01-0122:00,D1,30,1.0,2014-01-0122:00,JKL)(D10|20|2014-01-0111:00,D10,20,4.0,2014-01-0111:00,PQR)...第一个字段是第二个、第三个和第五个字段的串联,将用作HBaserow
我有一个pig脚本来加载、处理和存储数据。如果同一个pig脚本中有两个存储函数,它是如何工作的?a=load'somefile'usingPigStorage(',');b...c...d...e=storedinto'output1';f=storecinto'output2';是否为每个商店运行两次。对于store'e',它处理从'a'到'e',对于store'f',它直接存储'c'因为它已经被处理或者它将再次从'a'开始? 最佳答案 一般来说,底层的map/reduce框架具有多输出格式,因此Pig可以使用它并在单个作业中运行
有什么方法可以找到关系中可用的字段数或列数吗?例如:a=load'input'usingPigStorage(',')as(a1,a2,a3);b=load'input2'usingPigStorage(',')as(b1,b2,b3);C=joinabya1,bbyb1;现在结果“c”中将有六列。有什么方法可以通过代码检查结果中的列数。谢谢,卡莱 最佳答案 PIG不提供任何有意的列数计数方法,但使用pig中字段计数的方法之一是先存储文件,然后计算文件中的分隔符数。示例:-(使用的分隔符是“|”)%declareCOUNThadoo
我有以下电影数据库的数据集:Ratings:UserID,MovieID,RatingMovies:MovieID,Genre我使用以下方法过滤掉类型为“Action”或“war”的电影:movie_filter=filterMoviesby(genrematches'.*Action.*')OR(genrematches'.*War.*');现在,我必须计算war片或Action片的平均收视率。但是评级存在于评级文件中。为此,我使用查询:movie_groups=GROUPmovie_filterBYMovieID;result=FOREACHmovie_groupsGENERATE
我是一名学生,正在学习如何使用hortonworks沙箱使用Pig脚本。我的问题是我无法正确使用SUM函数。我已经成功地分离了防火墙日志的字段,并且我能够执行多个查询并使用计数函数......但是在一个案例中我真正需要的SUM函数没有运气。我在下面使用的这段代码:A=FOREACHlogs_baseGENERATEdevice_id,src,src_port,dst,dst_port,tran_ip,tran_port,service,duration,sent,rcvd,sent_pkt,rcvd_pkt,SN,user,group1,REGEX_EXTRACT(date,'\\d{
有没有办法在从命令行调用pig时自动运行pig脚本?我对此感到疑惑的原因是我有几个导入和定义语句,我经常反复使用这些语句来设置所有内容。是否可以在某个地方定义这个语句集合,以便当我启动pig时,它会自动执行这些行?如果这是我从文档中遗漏的微不足道的事情,我提前道歉。 最佳答案 是的,您当然可以从0.11版本开始这样做。您需要使用.pigbootup文件。这是一篇关于设置pigbootup文件的不错的博文http://hadoopified.wordpress.com/2013/02/06/pig-specify-a-default-