我想编写一个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
我的Pig脚本本身运行良好,直到我将它放入Oozie工作流中时,我收到以下错误:ERROR2043:Unexpectederrorduringexecution.org.apache.pig.backend.executionengine.ExecException:ERROR2043:Unexpectederrorduringexecution....Causedby:java.io.IOException:NoFileSystemforscheme:hbase我成功注册了HBase和Zookeeperjar,但收到了同样的错误。我还尝试通过在Pig脚本中添加这些行的变体来设置Zoo
我有一些包含一些包作为字段的记录,我正在尝试合并具有其他相同字段的记录的包(我正在丢弃一些字段)。数据看起来像这样:u08u08anid{(web)}00{(GB),(US)}anu08u08anid{(ars)}00{(GB),(RU)}anu09u09anid{(web)}00{(GB)}anu09u09anid{(web)}00{(US)}anu10u10anid{(web)}00{(GB)}anu10u10anid{(ars)}00{(GB)}anu11u11anid{(web)}00{(GB)}anu11u11anid{(web)}00{(GB)}an我想获得(在丢弃不相关的
我是Pig新手,我的输入数据格式如下Record1:{label:int,id:long},Record2:{...}...我想要的输出是得到Record1:{data:{label:int,id:long}},Record2:{...}...我试过:result=FOREACHinputGENERATE(id,label)ASdata;但这会导致嵌套的元组结构如下所示:Record1:{data:{TUPLE_1:{label:int,id:long}}}我怎么能去掉另一个袋子“TUPLE_1”,看起来我错过了一个微不足道的设置。 最佳答案