我是pig的新手,正在尝试对包含如下所示事件的文件执行一些基本分析:13454777652012-08-2008:49:24servername12.34.56.78192.168.1.4joebloggsManageSystemHere'syourmessage我尝试按如下方式加载文件:logs=LOAD'/path/to/file'usingPigStorageAS(loggedtime:long,serverdate:chararray,servertime:chararray,servername:chararray,externalip:chararray,internali
我是hadoop及其所有衍生产品的新手。我真的被大量可用的信息吓倒了。但我意识到的一件事是,要开始实现/使用hadoop或分布式代码,就必须从根本上改变他们思考问题的方式。我想知道是否有人可以在以下方面帮助我。所以,基本上(和其他人一样)我有一个原始数据。我想解析它并提取一些信息,然后运行一些算法并保存结果。假设我有一个文本文件“foo.txt”,其中的数据如下:id,$value,garbage_field,time_string\n1,200,grrrr,2012:12:2:13:00:002,12.22,jlfa,2012:12:4:15:00:001,2,ajf,2012:12
我们的目标是利用PIG对我们的服务器日志进行大规模日志分析。我需要从文件加载PIGmap数据类型。我尝试使用以下数据运行示例PIG脚本。我的CSV文件中名为“test”(由PIG处理)的一行看起来像,151364,[ref#R813,highway#secondary]我的PIG脚本a=LOAD'test'usingPigStorage(',')AS(id:INT,m:MAP[]);DUMPa;想法是加载一个int和第二个元素作为hashmap。然而,当我转储时,int字段被正确解析(并在转储中打印)但map字段未被解析导致解析错误。如果我遗漏了什么,有人可以解释一下吗?
我有两组数据想在Pig中进行比较。两者具有相同的唯一ID,但第二组数据中的名称随机更改。逻辑如下:加载empl1原始数据加载empl2原始数据选择“名称不相同”且“emplno相等”的行我做了:A1=LOAD'cassandra://employees_pig1/employees_cf'USINGCassandraStorage()AS(key,columns:bag{T:tuple(name,value)});B1=LOAD'cassandra://employees_pig2/employees_cf'USINGCassandraStorage()AS(key,columns:b
我想计算Pigmap中键的数量。我可以编写UDF来执行此操作,但我希望有更简单的方法。data=LOAD'hbase://MARS1'USINGorg.apache.pig.backend.hadoop.hbase.HBaseStorage('A:*','-loadKeytrue-caching=100000')AS(id:bytearray,A_map:map[]);在上面的代码中,我想基本上构建id的直方图以及该键在列族A中有多少项。怀着希望,我尝试了c=FOREACHdataGENERATEid,COUNT(A_map);但不出所料,这没有奏效。或者,也许有人可以建议一个更好的方
我在PigLatin中遇到问题我有一段Pig代码,它将调用带引号的字符串data=LOAD'$data'AS(...);a=some_macro(data,'-9999ASKEY');宏是这样的:DEFINEsome_macro(data,string)RETURNSresults{grp=GROUP$dataALL;$result=FOREACHgrp{//...logicandlogicsGENERATE$string,//...otherfields...;}}对于字符串“-9999ASKEY”,Pig0.10好像不行,我试了“'-9999'ASKEY”,又不行。那么有人对此有解
我正在使用三元运算符有条件地在SUM()操作中包含值。这是我的做法。GROUPED=GROUPALL_MERGEDBY(fld1,fld2,fld3);REPORT_DATA=FOREACHGROUPED{GENERATEgroup,SUM(GROUPED.fld4=='S'?GROUPED.fld5:0)ASsum1,SUM(GROUPED.fld4=='S'?GROUPED.fld5:(GROUPED.fld5*-1))ASsum2;}ALL_MERGED的架构是{ALL_MERGED:{fld1:chararray,fld2:chararray,fld3:chararray,fl
我正在尝试使用Pig开发一个示例程序来分析一些日志文件。我想分析不同作业的运行时间。当我读入作业的日志文件时,我得到作业的开始时间和结束时间,如下所示:(Wed,03/20/13,01:03:37,EDT)(Wed,03/20/13,01:05:00,EDT)现在,要计算耗时,我需要减去这2个时间戳,但由于两个时间戳都在同一个包中,我不确定如何比较它们。所以我正在寻找有关如何执行此操作的想法。谢谢! 最佳答案 两个日志行中的作业是否有唯一ID?还有什么东西可以指示哪个事件开始,哪个事件结束?如果是这样,您可以读取数据集两次,一次用于
我了解到Pig是构建在ApacheHadoop之上的。但是我无法找到Pig所具有的裸hadoop实现所缺少的额外功能。是什么导致需要像PigLatin这样的语言?Hadoop缺少什么? 最佳答案 引用自维基:Pigisahigh-levelplatformforcreatingMapReduceprogramsusedwithHadoop.ThelanguageforthisplatformiscalledPigLatin.PigLatinabstractstheprogrammingfromtheJavaMapReduceidio
我用PigLatin编写了一个脚本,然后通过Java执行它。这是我的代码:publicstaticvoidmain(Stringargs[]){PigServerpigServer;try{Propertiesprops=newProperties();props.setProperty("fs.default.name","hdfs://localhost:8022");props.setProperty("mapred.job.tracker","localhost:8021");System.setProperty("javax.xml.parsers.DocumentBuild