草庐IT

PIG_HOME

全部标签

java - pig : Group by ranges/binning data

我有一组整数值,我想将它们分组到一堆容器中。示例:假设我有1到1000之间的一千个点,我想做20个bin。有没有办法将它们分组到一个bin/array中?此外,我不会提前知道范围有多宽,因此我无法硬编码任何特定值。 最佳答案 如果您有最小值和最大值,则可以将范围除以bin的数量。例如,--foo.pigids=load'$INPUT'as(id:int);ids_with_key=foreachidsgenerate(id-$MIN)*$BIN_COUNT/($MAX-$MIN+1)asbin_id,id;group_by_id=g

Hadoop:如果 Pig 中的字段为空,则创建空包

我有以下数据的例子id:long,list:{(itemId:Long,itemName:charArray)}在我的数据中,list可以是一包元组或null。我想把null改成一个空包(由0个元素组成)我试过类似的东西:answer=FOREACHdataGENERATE(listisnull?{}:list)ASlist;它说{}和list是不兼容的架构。我想知道如何创建一个具有兼容架构的空包我最终这样做了并且成功了:answer=FOREACHdataGENERATE(listisnull?(bag{tuple(long,chararray)}){}:list)ASlist:{(

hadoop - 找不到 hadoop 安装 : $HADOOP_HOME must be set or hadoop must be in the path

所以有点背景。我一直在尝试在CentOS6机器上设置Hive。我按照这个Youtube视频的说明操作:http://www.youtube.com/watch?v=L2lSrHsRpOI就我而言,我使用的是Hadoop-1.1.2和Hive0.9.0,本视频中所有标有“mnt”的目录我都将其替换为“opt”,因为这是我所有的hadoop和hive包的位置被打开了。当我到达视频中实际上应该通过“./hive”运行Hive的部分时弹出此错误:"Cannotfindhadoopinstallation:$HADOOP_HOMEmustbesetorhadoopmustbeinthepath"

hadoop - Pig & Cassandra & DataStax 拆分控制

我一直在使用Pig和我的Cassandra数据来完成各种惊人的分组壮举,这些壮举几乎不可能用命令式编写。我正在使用DataStax的Hadoop和Cassandra集成,我不得不说它非常令人印象深刻。向那些家伙致敬!!我有一个非常小的沙盒集群(2节点),我正在其中对这个系统进行一些测试。我有一个CQL表,它有~53M行(每个大约350字节),我注意到Mapper稍后需要很长时间来处理这53M行。我开始查看日志,发现map反复溢出(我从映射器中看到177次溢出),我认为这是问题的一部分。CassandraInputFormat和JobConfig的组合只创建了一个映射器,所以这个映射器必

hadoop - 按 pig 中的相同值对数据包进行分组

我创建了以下Pig脚本来过滤提到电影标题的网络文档集合(CommonCrawl)中的句子(来自预定义的电影标题数据文件),对这些句子应用情绪分析并将这些情绪分组电影。register../commoncrawl-examples/lib/*.jar;setmapred.task.timeout=1000;register../commoncrawl-examples/dist/lib/commoncrawl-examples-1.0.1-HM.jar;register../dist/lib/movierankings-1.jarregister../lib/piggybank.jar;

hadoop - 如何阅读 Pig "detailed locations"日志行?

执行Pig脚本时,会发出其中一些日志:2014-10-2916:07:03,658[MainThread]INFOorg.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher-detailedlocations:M:TRACKED[155,10],null[-1,-1],null[-1,-1],TRACKED_USERS[156,16],null[-1,-1],HAS_CONV[163,11],HAS_CONV[164,11],null[-1,-1],REACHED[159,10],REAC

csv - Pig Latin 正在加载包含 !作为分隔符

我是Pig的新手,所以可能有一个简单的解决方案,但我无法弄清楚。问题:我有一个以!作为分隔符的平面文件,所以文件的结构看起来像这样!id!value!value2!1!100!200当我尝试使用pigstorage('\t')加载此文件时,所有内容都加载到第一个变量中。foo=load'bar.txt'usingPigstorage('\t')asId:chararray,value:chararray,value3:chararray;这不起作用,因为所有文件都被读取到ID列中。我想拆分负载,以便在其正确的列中读取每个值。到目前为止,我尝试了在howtoloadfileswithdi

java - APACHE HADOOP 版本 2.8.0 的 HADOOP_HOME 和 PIG_CLASSPATH 的正确值是多少?

我在从PIG命令行执行Hadoop命令时遇到问题。命令和错误堆栈在下面我的导师怀疑这是因为HADDOP_HOME和PIG_CLASSPATH不正确。我使用的是HADOOP2.8.0版。所以,最初我有HADOOP_HOME作为HADOOP_HOME=/hadoop/2.8.0/然后我切换了以下设置:HADOOP_HOME=/hadoop/2.8.0/libexec/etc/hadoopPIG_CLASSPATH定义为$HADOOP_HOME我在pig中使用的命令:A=LOAD'/Users/anarinsky/Downloads/loaddata1.txt';B=MAPREDUCE'/U

hadoop - 在 Apache pig 工作中获取今天的日期

我想在我的一项假定每天运行的Pig作业的输出文件路径中使用今天的日期,有没有办法做到这一点。就像是/user/x/$todaysDate 最佳答案 通过bash执行此操作:echo'/user/x/'`date+%Y-%m-%d`给出:/user/x/2012-10-14因此,您可以将脚本执行为:$pig-paramoutpath='/user/x/'`date+%Y-%m-%d`myscript.pig然后,在您的STORE命令中,使用$outpath:STOREabcINTO'$outpath';

hadoop - 双冒号在 Pig 中到底是什么意思?

当我使用DESCRIBE时,我在Pig输出中看到很多双冒号,但它们的含义并不明显。例如,在分组和展平之后,我看到类似这样的内容:key::observerId:chararray,key::endpoint:chararray,...在某些时候,我按observerId和端点分组,将组元组重命名为“键”,然后重新展平。那么,双冒号到底是什么意思,我应该如何引用第一个关系(key?observerId?) 最佳答案 在您的问题中,::是消除歧义的运算符,它用于在JOIN、COGROUP、CROSS或FLATTEN运算符之后识别字段名称