草庐IT

hadoop - 将 pig 结果存储在文本文件中

嗨,stackoverflow社区;我对pig完全陌生,我想将结果存储在一个文本文件中并根据需要命名。是否可以使用STORE函数执行此操作。我的代码:a=LOAD'example.csv'USINGPigStorage(';');b=FOREACHaGENERATE$0,$1,$2,$3,$6,$7,$8,$9,$11,$12,$13,$14,$20,$24,$25;STOREbINTO‘myoutput’;谢谢。 最佳答案 是的,您将能够将结果存储在myoutput.txt中,并且您可以使用PigStorage将数据加载到包含任何

hadoop - 使用 Apache Hadoop Pig 内部连接两个数据集

我有两个数据集(1M唯一字符串)和(1B唯一字符串);我想知道有多少字符串在两个集合中是通用的,并且想知道使用ApachePig获取数字的最有效方法是什么? 最佳答案 您可以先加入两个文件,如下所示:A=LOAD'/joindata1.txt'AS(a1:int,a2:int,a3:int);B=LOAD'/joindata2.txt'AS(b1:int,b2:int);X=JOINABYa1,BBYb1;然后你可以计算行数:grouped_records=GROUPXALL;count_records=FOREACHgrouped

Hadoop Pig 无法存储到现有文件夹

我创建了一个文件夹,用于使用Store命令从Pig进程中删除结果文件。它第一次工作,但第二次它提示该文件夹已经存在。这种情况的最佳做法是什么?关于此主题的文档很少。我的下一步是将文件夹重命名为原始文件名,以减少这种影响。有什么想法吗? 最佳答案 你可以执行fscommands从Pig中,并且应该能够通过在运行STORE命令之前发出fs-rmr命令来删除目录:fs-rmrdirSTOREAinto'dir'usingPigStorage();唯一巧妙的是fs命令不需要目录名称周围的引号,而store命令确实需要目录名称周围的引号。

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