草庐IT

PIG_FEATURE

全部标签

hadoop - 为什么 DISTINCT 在 Pig 中比 GROUP BY/FOREACH 快

我不知道为什么DISTINCT在Pig中比GROUPBY/FOREACH快,它们在MapReduceFramework中应该是相同的,但请引用:http://pig.apache.org/docs/r0.10.0/perf.html#distinctPigwiki说“要从关系中的列中提取唯一值,您可以使用DISTINCT或GROUPBY/GENERATE。DISTINCT是首选方法;它更快、更高效。”为什么?实现方式不同吗? 最佳答案 distinct的输出是一种关系,它仅包含您对其进行区分的列,因此Map作业仅输出指定列的值作为键

Hadoop pig 过滤器

我有一个这样的输入文件:481295b2-30c7-4191-8c14-4e513c7e7577,1362974399,56973118825,56950298471,true67912962-dd84-46fa-84ef-a2fba12c2423,1362974399,56950556676,56982431507,falsecc68e779-4798-405b-8596-c34dfb9b66da,1362974399,56999223677,56998032823,true37a1cc9b-8846-4cba-91dd-19e85edbab00,1362974399,5695466

hadoop - 如何将常量值附加到 pig 的关系

我想保留关系的元组计数来做一些计算,什么是最有效的解决方案。目前我是这样处理的:G4=GROUPDALL;E=FOREACHG4{total=COUNT(D);GENERATEFLATTEN(D),totalastotal;};上面的pig代码片段转换为只有一个reduce的MapReduce作业,速度非常慢。 最佳答案 这需要很长时间,因为您必须将所有数据发送到reducer,然后再将其全部写回磁盘。这是由于FLATTEN.COUNT实际上会非常有效,因为Pig使用组合器来处理中间结果。所以你可以只计算计数,然后高效地计算JOIN

hadoop - 在 PIG 中添加重复列

我有这样一些值(value)观,tEn1teN8Ten1thrEE2tHRee1如何添加第2列并为第1列中的所有不区分大小写的重复项生成此列?ten10three3我试过使用GROUP,tmp=GROUPdataBY(column1);result=FOREACHtmpGENERATEgroup,SUM(data.column2)ascount但不知何故,它似​​乎没有给出正确的结果。我该怎么办? 最佳答案 字符串区分大小写。您需要先将它们全部设为小写,以便它们匹配lowerdata=FOREACHdataGENERATELOWER

hadoop - "Doesn' t 存在于 RM"Pig 后端错误

我在从http://www.cloudera.com/content/cloudera-content/cloudera-docs/DemoVMs/Cloudera-QuickStart-VM/cloudera_quickstart_vm.html下载的ClouderaQuickStartVM中遇到错误.我正在尝试TomWhite的Hadoop:权威指南中的玩具示例,名为map_temp.pig,它“按年份查找最高温度”。我创建了一个名为temps.txt的文件,其中每一行都包含(年份、温度、质量)条目:19500119502211950-11119491111使用书中的示例代码,我在

hadoop - 让 Pig 0.12 与 hadoop 2.2.0 一起工作

我在远程集群上运行了hadoop2.2.0,在另一台机器上运行了Pig0.12。我需要让Pig与hadoop进行通信,第一步似乎是使用hadoop2.2.0构建Pig0.12。这是我所做的:在ivy/libraries.properties中将hadoop-core.version、hadoop-common.version、hadoop-hdfs.version、hadoop-mapreduce.version更改为2.2.0。在ivy.xml中将hadoop-core依赖替换为hadoop-client依赖。使用“antcleanjar-all-Dhadoopversion=23”

hadoop - 在 Pig 中执行 JOIN 和 FILTER 后出现 "Invalid scalar projection"错误

我正在使用Pig0.12.1.为什么我在通过LEFTOUTER执行JOIN之后FILTER时会收到错误消息?这里是一个修改过的例子:A=LOAD'$file1'USINGPigStorage('\t')AS(idA:int,manufacturer:chararray);B=LOAD'$file2'USINGPigStorage('\t')AS(idB:int,price:float);C=JOINABYidALEFTOUTER,BBYidB;D=FILTERCBYprice>2.0;为什么我在D上出现“无效标量投影”错误:ERRORpig.PigServer:exceptiondur

hadoop - Pig - Order by - 不同的 reducer ?

我是pig的新手。我正在尝试进行合并连接。满足以下要求:Datamustbesortedonjoinkeysinascending(ASC)orderonbothsides.示例文件:4,TheObjectofBeauty,1991,2.8,61501,TheNightmareBeforeChristmas,1993,3.9,45682,TheMummy,1932,3.5,43883,OrphansoftheStorm,1921,3.2,90623,OrphansoftheStorm,1921,3.2,90624,TheObjectofBeauty,1991,2.8,61505,Nig

java - pig : Hadoop jobs Fail

我有一个从csv文件查询数据的pig脚本。该脚本已在本地使用小型和大型.csv文件进行了测试。在小集群中:它从处理脚本开始,并在完成40%的调用后失败错误只是,无法从“文件路径”读取数据我的推断是,脚本可以读取文件,但是连接断开,消息丢失但我只收到上述错误。 最佳答案 一般问题的答案是更改配置文件中的错误级别,将这两行添加到mapred-site.xmllog4j.logger.org.apache.hadoop=error,Alog4j.logger.org.apache.pig=error,A在我的例子中,它是一个OutOfMe

hadoop - 我想在 pig : dash, 逗号、散列、空格和冒号中使用以下分隔符来标记字符串

如何使用STRSPLIT、TOKENIZER或任何其他方法执行此操作? 最佳答案 您可以使用STRSPLIT和regex来解决这个问题。我不确定您的输入是否包含单个或多个定界符组合(破折号、逗号、连字符、空格和散列),但以下解决方案对两者都适用。输入a#bc-d,efe,g#h:i1,2,3,4,5l#y#z#h#nABCDEPigScript:A=LOAD'input'AS(line:chararray);B=FOREACHAGENERATEFLATTEN(STRSPLIT(line,'[-,:\\s#]',5));DUMPB;输