大家好,我是Pig的新手,我正在尝试遵循Pig脚本:然后它显示以下错误:ERROR1000:解析时出错。无法使用参数“null”实例化“UPER”详细信息位于日志文件:/home/training/pig_1371303109105.log我的Pig脚本:registerudf.jar;A=LOAD'data1.txt'USINGPigStorage(',')AS(name:chararray,class:chararray,age:int);B=foreachAgenerateUPER(class);我关注this教程。我的java类是:entercodehereimportorg.
这可能是一个快速的问题,但我尝试使用谷歌搜索无济于事。基本上,我的一个输出列中有一个输出,有时会变成科学记数法。例如3.9E-4。但是,如果数字足够大,它会将其保留为float,例如0.08544751199999999。我如何取消科学记数法?! 最佳答案 我认为PigLatin无法做到这一点。为了解决类似的问题,我自己编写了一个UDF,它只是String.format的包装器。:importjava.io.IOException;importorg.apache.pig.EvalFunc;importorg.apache.pig.
所以,我有一个包含两个值的数据,一个是字符串,一个是数字。data(string:chararray,number:int)我正在计算5种不同的规则,1:int为0~1。2:int为1~2.~5:int为4~5.所以我能够单独数出它们,zero_to_one=filteravg_userbyaverage_stars>=0andaverage_stars1andaverage_stars2andaverage_stars3andaverage_stars4andaverage_stars所以,这是可以做到的,但是这只会产生5个单独的表。我想看看有没有办法(花哨是可以的,我喜欢花哨的东西
是否可以让Pig使用一个映射器处理多个小文件(假设这样做会提高工作速度)。我们有一个问题,即hdfs中有数千个小文件,而pig创建了数百个映射器。Pig是否提供了解决此问题的简单(完整或部分)解决方案? 最佳答案 您可以利用这些属性将这些多个文件组合成一个文件,以便它们由单个map处理:pig.maxCombinedSplitSize–指定要由单个映射处理的数据的大小(以字节为单位)。合并较小的文件,直到达到此大小。pig.splitCombination–打开或关闭合并拆分文件(默认设置为“true”)。此功能适用于PigStor
我在我的Windows7机器(32位)上以本地模式运行Hadoop。我已经把HIVE/PIG/Hadoop/Java6都安装在C盘了。我使用的是Cygwin版本:2.819。我已经在cygwin上安装了C:。我能够从cygwin终端运行hadoop命令,例如:fs-ls等。我还可以启动grunt和hiveshell。但真正的问题是:我在gruntshell上输入的任何命令(例如:fs-ls或records=LOAD.....)我没有看到任何输出,它有点挂起。与配置单元提示类似,如果我将命令作为showtables给出;我没有看到任何输出,只是光标一直在闪烁!任何键盘输入并没有给出任何结
例如,我有一个这样的输入文件:xxx,14yyy,20zzz,11我想对第二个字段求和并输出。现在我知道如何使用HadoopPig对其求和,但我想要这样的输出:Canada,45所以意思是我自己把键名设置为“加拿大”,加上SUM作为值。如何自己设置键名? 最佳答案 只需应用一个常量字段:A=load'data.txt'usingPigStorage(',')as(txt:chararray,num:int);B=groupAALL;C=foreachBgenerate'Canada'ascountry:chararray,SUM(A
我正在使用CDH4运行Hadoop2.0,并使用OracleJava1.6r31构建了象鸟库我的pig脚本:registerelephant-bird-2.2.3.jarlog=load'loggy.log.lzo'usingcom.twitter.elephantbird.pig.store.LzoPigStorage('');limited=limitlog100;dumplimited;结果:PigStackTrace---------------ERROR2117:Unexpectederrorwhenlaunchingmapreducejob.org.apache.pig.i
PigLatin中的“PartitionBy”子句有什么用?另请提供示例用法。是只允许自定义分区还是允许按列分区? 最佳答案 PigLatin中的“PartitionBy”子句有什么用?这允许您设置您选择的Partitioner。Pig使用默认的HashPartitioner,order和skewjoin除外。但有时您可能希望拥有自己的实现来提高性能。PartitionBy对此有帮助。另请提供示例用法。DATA=LOAD'/inputs/demo.txt'usingPigStorage('')as(no:int,name:chara
在我的PIG脚本中,我有以下内容:REL=FILTEROLD_RELBYCOL=='$filter';如果我将$filter作为多词字符串word1word2传递,PIG仅针对word1进行过滤。好像word2被砍掉了。当我从命令行执行它或从oozie调用它时会发生这种情况。我正在使用PIG0.11.0-cdh4.3.0 最佳答案 在字符串中添加额外的单引号:-pfilter="'word1word2'"如果您再次遇到此类问题,使用-dryrun选项会很有用,它会生成一个带有替换参数的脚本(文本文件),而不执行脚本。
我正在尝试使用PigStorage从hdfs加载一个csv文件,限制输出bt一条记录并转储。我的hdfs快照:我在一台从机上运行一个2节点集群,其中有1个主节点(NN和SecNN)和1个数据节点和作业跟踪器。我的pig脚本在数据节点上运行。使用根用户grunt>x=load'/user/hadoop/input/myfile.csv'usingPigStorage(',')as(colA:chararray);grunt>y=limitx1;grunt>dumpy;控制台日志:>HadoopVersionPigVersionUserIdStartedAtFinishedAt>Featu