在thispresentation在幻灯片36和37-Cascalog的作者断言,给定一组姓名和年龄的数据,例如:[姓名年龄]返回所有大于平均年龄的结果的查询是300行PIG。这是一个有效的断言吗?PIG到底有几行?或者他描述的问题比我描述的更严重?(免责声明-我是Nathan的作品、Clojure和Cascalog的忠实粉丝-我只是想弄清楚一些事实)。 最佳答案 您误解了他在本次演讲中所说的话。他的意思是PIG中的“平均”实现是300行java代码,而由宏谓词功能实现的5行cascalog代码。他想强调构图的力量。PD:抱歉我的英
在我的Pig脚本(0.9.2)中,我的最终输出如下所示:final:{email:chararray,{(name:chararray,percent:double)}}对于每个电子邮件地址,我有最多3个姓名和分数。所以,输出看起来像这样:joe@smith.com{(JoeSmith,0.5),(Joseph,0.1),(Joey,0.1)}我真正想做的是将其扁平化为带制表符的分隔值(没有括号或大括号),以便像这样更容易地拉入MySQL表:joe@smith.com乔·史密斯0.5约瑟夫0.1乔伊0.1如何在Pig中完成此操作?还是我必须编写自定义UDF?
我刚刚在HortonworksHDP2.1上将Pig0.12.0升级到0.13.0版本当我尝试在脚本中使用XMLLoader时出现以下错误,即使我已经注册了piggybank。脚本:A=load'EPAXMLDownload.xml'usingorg.apache.pig.piggybank.storage.XMLLoader('Document')as(x:chararray);错误:dumpA2014-08-1023:08:56,494[main]INFOorg.apache.hadoop.conf.Configuration.deprecation-io.bytes.per.ch
我想编写一个pig代码来执行分组并生成31个字段的总和,但在此之前我需要做一些自定义处理,为此我编写了一个eval函数。我想如果我可以将GROUP和SUM操作包含到UDF中,我可以让它运行得更快。要做到这一点,我可以使用代数UDF如果是,我的inital()、intermed()和final()的返回模式会是什么样子,如果不是,我还能如何实现它。下面是我的代码,谢谢。a=LOAD'./a'usingPigStorage('|')AS(val:int,grp1,grp2,amt1:long,amt2:long,amt3...amt31:long);b=FOREACHaGENERATEmy
我正在尝试使用Pig和Cassandra运行MapReduce作业,但我总是收到错误消息:错误2118:无法为cassandra://constellation/logs创建输入拆分[已解决]有一些我没有设置的环境变量:PIG_RPC_PORT,PIG_INITIAL_ADDRESS,PIG_PARTITIONER/opt/cassandra-0.7.0-beta3/contrib/pig$bin/pig_cassandraexample-script.pig10/11/1517:38:26INFOpig.Main:Loggingerrormessagesto:/opt/cassand
我正在使用Amazon的elasticmapreduce。我的日志文件看起来像这样randomtextfoo="1"morerandomtextfoo="2"moretextnotamatch="5"noisefoo="1"blahblahblahfoo="1"blahblahfoo="3"blahblahfoo="4"...我如何编写pig表达式来挑选“foo”表达式中的所有数字?我更喜欢看起来像这样的元组:(1,2)(1)(1,3,4)我试过以下方法:TUPLES=foreachLINESgenerateFLATTEN(EXTRACT(line,'foo="([0-9]+)"'))
上周我使用用户“root”启动了Hadoop的dfs&mapreduce并运行了Embedded-PigJava代码。它运行良好。本周我想通过使用非根用户:charlie来执行相同的任务。在更改了几个目录的用户权限设置后,现在我可以使用用户“charlie”来启动Hadoop的dfs和mapreduce而不会出现错误。但是,当我使用用户“charlie”运行Embedded-PigJava代码时,它一直提示我设置为/opt/hdfs/的hadoop.tmp.dir的权限core-stie.xml中的tmp/:java.io.FileNotFoundException:/opt/hdfs
Pig将所有通过(pigserver.registerjar)注册的jar组合到一个job.jar中。这实际上删除了META-INF/MANIFEST.MF。我们有一个UDF,它使用包含预定义属性的MANIFEST.MF查找jar(我们的一个jar包含这个)。当Pig删除这个MANIFEST.MF时,我们的UDF停止工作。有没有办法将jar添加到类路径而不是registerjar?或者有什么办法可以克服这个问题吗?以下是代码片段:cluster=newCluster(newPigContext(ExecType.MAPREDUCE,properties));PigServerpigSe
当我通过PigServerjava类执行pig脚本时,会创建很多Jobxxx.jar。我知道这些是被发送到Hadoop集群的Map/Reduce作业。因为我有一个相当复杂的脚本,所以我知道这将分为许多不同的工作。然而,我很困惑,为什么这些jar文件必须这么大。当然,它们都包含我的UDF代码,它不是那么大,但它们还包含例如整个(展开的)org/apache/pig结构。生成的jar文件每个都超过7MB。在将这些文件发送到hadoop集群之前,如何防止这些文件变得太大? 最佳答案 由于多种原因,工作如此之大:正如mr2ert所说,可以为
我想将一个文本文件加载到pig中,然后将其存储为rc文件,为此我发现twitter在这个链接中提供了一个存储udfhttp://grepcode.com/file/repo1.maven.org/maven2/com.twitter.elephantbird/elephant-bird-rcfile/3.0.8/com/twitter/elephantbird/pig/store/RCFilePigStorage.java谁能告诉我如何编译它并在我的pig代码中使用它? 最佳答案 包括所有twitter依赖项和pigjars并编译R