我有一个名为USERS的hbase表,其列族名称为USER_INFO。USER_INFO有两个限定符EMAIL、AGE。当我尝试通过PIG加载单个限定符值时,它成功了。使用命令:R=LOAD'USERS'USINGorg.apache.pig.backend.hadoop.hbase.HBaseStorage('USER_INFO:EMAIL','-loadKey')AS(key:chararray,EMAIL:chararray);dumpR;但我无法使用这两个限定符加载表格。即电子邮件、年龄。我试过这个:S=LOAD'USERS'USINGorg.apache.pig.backen
在pig中使用加载数据流步骤与使用(使用PigStorage)和不使用它有什么区别?想知道以下步骤之间的区别。movie2=load'movie/part-m-00000'as(mid:int,mname:chararray,myr:int);movie2=load'movie/part-m-00000'usingPigStorage(',')as(mid:int,mname:chararray,myr:int); 最佳答案 默认使用PigStorage,它是一个文本文件,其中字段由定界符分隔,制表符作为定界符。指定usingPig
我的项目有一个ASCII输入文件,我使用pig脚本进行映射缩减。在此脚本中,我使用子字符串获取指定的字符间隔。我想问一下如果我用java取char间隔然后将jar文件嵌入到另一个pig脚本中减少我的数据,我的程序运行得更快还是不快? 最佳答案 这完全取决于您如何在map方法中实现char间隔拆分。如果您知道您的数据,则可以优化子字符串。检查这个线程:charAt()orsubstring?Whichisfaster?此外,一般来说,将jar添加到hadoop集群会增加一些文件传输和设置内部内容(类加载器、解包等)的开销,但在这种情况
我编写了UDF以将文件加载到Pig中。它适用于加载文本文件,但是,现在我还需要能够读取.gz文件。我知道我可以解压缩文件然后处理,但我只想读取.gz文件而不解压缩它。我的UDF从LoadFunc扩展,然后在我的自定义输入文件MyInputFileextendsTextInputFormat中。我还实现了MyRecordReader。只是想知道extendsTextInputFormat是否是问题所在?我尝试了FileInputFormat,仍然无法读取文件。有人写过UDF从.gz文件读取数据吗? 最佳答案 TextInputForm
我有一个正在分组的关系。我怎样才能像map一样访问分组值?data=load'log.txt'as(id:chararray,name:chararray);grouped=groupdatabyid;foreachdata{filtered=filtergroupbygroup.id=data.id;};我尝试迭代组并过滤结果包的一种方法。但我的情况是我必须迭代一个外部元组,然后必须从这些结果中从分组值中获取相应的包。我尝试了嵌套的foreach,但出现以下异常,expressionisnotaprojectexpression:(Name:ScalarExpression)Type
我在windowsxp中使用cygwin安装pig-0.11.1。我提取了我的pig_home文件夹并将其放置在cygwin的用户目录中。当我尝试在提示符下命令./pighelp时,它显示以下错误。其中:(/usr/local/bin:/usr/bin:/cygdrive/c/ProgramFiles/Java/jdk1.6.0_31/bin:/home/sunil/pig-0.11.1/bin中没有hadoop)cygpath:无法创建C:\cygwin\home\sunil\pig-0.11.1\logs的短名称找不到pig.jar。做'antjar',然后再试一次我能得到一些关于
我在我的eclipse中下载并安装了pigpen插件,我按照thislink中的步骤操作)但是当我设置Pig的ConfigurationPath时有点困惑。谁能告诉我如何设置首选项以在eclipse中运行pig脚本。我很累,但没有正常工作。 最佳答案 您是否使用UnixBox来运行Eclipse?如果答案是肯定的,那么你可以让它工作。如果你在Windows上工作并使用SSH客户端连接到Unix框,恐怕它不会工作(至少按照你帖子中提到的链接) 关于hadoop-如何设置首选项以在Eclip
假设我有一个具有以下架构的数据集:ItemName(String),Length(long)我需要根据长度找到重复项。这在PIG中很容易做到:raw_data=LOAD...datasetgrouped=GROUPraw_databylengthitems=FOREACHgroupedGENERATECOUNT(raw_data)ascount,raw_data.name;dups=FILTERitemsBYcount>1;STOREdups....上面找到了完全相同的重复项。给定以下设置:一、100二、105三、100它会输出2,(a,c)现在我需要使用阈值查找重复项。例如,如果项目
我写了一个UDF,其中我的输入模式是一袋元组,现在在我的UDF中,我正在处理每个元组并为每个元组附加额外的字段并将其提供给输出包。这很好用,现在在我的下一步中,我尝试创建我的输出包的输出模式,我只想在我的包输入的元组中附加一个字段。我该怎么做?这是我的输入包架构。xx:{(uniqueRS::PreprocUDF::id:long,uniqueRS::PreprocUDF::dominion:chararray,uniqueRS::PreprocUDF::affectedItemGRN:chararray,uniqueDomAndUser:{(PreprocUDF::dominion:
我注意到,当我在加载后的pig脚本中引入“SPLIT”和“COGROUP”语句时,pig作业中的映射器数量会翻倍。这个对吗?有谁知道为什么会这样?我使用PigStorage加载数据集:A=LOAD'test.csv'USINGPigStorage;cattest.csvA123A345B234B123然后我使用SPLIT将数据集拆分为两个关系(使用过滤器结果相同)。然后,我将这两个关系组合为一个,并存储它。SPLITAINTOAAIF$0=='A',ABIF$0=='B';CG=COGROUPAABY$1,ABBY$1;STORECGINTO'cg'USINGPigStorage();