草庐IT

pig-without

全部标签

hadoop - 如何在pig 0.8中处理多分隔 rune 件

我有输入文本文件(名称multidelimiter)和以下记录1,Mical,2000;102,Smith,3000;20我写的pig代码如下A=LOAD'/user/input/multidelimiter'ASline;B=FOREACHAGENERATEFLATTEN(REGEX_EXTRACT_ALL(line,'(.*)[,](.*)[,](.*)[;]'))AS(f1,f2,f3,f4);但是由于出现以下错误,这段代码无法正常工作ERRORorg.apache.pig.tools.grunt.Grunt-ERROR1000:Errorduringparsing.Lexica

datetime - 从时间戳到现在的 Apache Pig

我正在尝试使用amabari中的apachepig分析一些数据在这种特定情况下,我遇到了问题...我有一列时间戳以这种特定格式编写14333061460001422814565122使用在线转换器,如果我输入1433306146000,输出是08/30/47389@12:06pm(UTC)但事实并非如此,事实上,如果我手动删除最后3个数字(1433306146),结果是06/03/2015@凌晨4:35(UTC)。那么,pig中有一种方法可以删除时间戳列中的最后3个数字吗?还有一个主要问题是:使用函数GetDay(datetime)如果我传递时间戳,它会起作用吗?或者有不同的方法从时间

hadoop - Pig Latin JOIN 错误

我正在加载两个数据集A、BA=LOAD[datapath]B=LOAD[datapath]我想通过id字段连接A和B的所有字段。A和B都有公共(public)字段id和其他字段。当我通过id执行JOIN时:AB=JOINAbyid,Bbyid;结果数据集AB包含两个类似的字段id列,但是,它只能显示id字段的一列。我在这里做错了什么? 最佳答案 这是预期的行为,当连接两个数据集时,所有列都包括在内(即使是您连接的那些列)可以查一下here如果你想删除一个列,你可以使用generate语句来完成。但首先您需要知道不需要的列的位置。例如

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