草庐IT

PIG_FEATURE

全部标签

hadoop - Apache Pig 不会将字符串解析为 int/long

我是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 - 非常基本的 pig-latin 初学者代码

我是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

hadoop - PIG 加载 CSV - map 类型错误

我们的目标是利用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字段未被解析导致解析错误。如果我遗漏了什么,有人可以解释一下吗?

hadoop - 使用 cassandra 和 pig 进行数据清理

我有两组数据想在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

hadoop - pig : Count number of keys in a map

我想计算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);但不出所料,这没有奏效。或者,也许有人可以建议一个更好的方

hadoop - 如何在 Pig Latin 中放置带引号字符串的参数?

我在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”,又不行。那么有人对此有解

hadoop - Pig 中的条件和

我正在使用三元运算符有条件地在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

hadoop - 从 Pig 中的另一行中减去一行的值

我正在尝试使用Pig开发一个示例程序来分析一些日志文件。我想分析不同作业的运行时间。当我读入作业的日志文件时,我得到作业的开始时间和结束时间,如下所示:(Wed,03/20/13,01:03:37,EDT)(Wed,03/20/13,01:05:00,EDT)现在,要计算耗时,我需要减去这2个时间戳,但由于两个时间戳都在同一个包中,我不确定如何比较它们。所以我正在寻找有关如何执行此操作的想法。谢谢! 最佳答案 两个日志行中的作业是否有唯一ID?还有什么东西可以指示哪个事件开始,哪个事件结束?如果是这样,您可以读取数据集两次,一次用于

hadoop - Apache Pig 和 Hadoop 的实现

我了解到Pig是构建在ApacheHadoop之上的。但是我无法找到Pig所具有的裸hadoop实现所缺少的额外功能。是什么导致需要像PigLatin这样的语言?Hadoop缺少什么? 最佳答案 引用自维基:Pigisahigh-levelplatformforcreatingMapReduceprogramsusedwithHadoop.ThelanguageforthisplatformiscalledPigLatin.PigLatinabstractstheprogrammingfromtheJavaMapReduceidio

Java & Pig - 是否可以将 pig 脚本的输出放入 Java 变量中?

我用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