我在txt文件中有这个smaple数据集(格式:名字,姓氏,年龄,性别):(Eric,Ack,27,M)(Jenny,Dicken,27,F)(Angs,Dicken,28,M)(Mahima,Mohanty,29,F)我想显示年龄大于27岁的员工的age和firstname。在进行了相当多的操作并寻找一些指示后,我被卡住了:我正在使用以下方式加载此数据集:tuple_record=LOAD'~/Documents/Pig_Tuple.txt'AS(details:tuple(firstname:chararray,lastname:chararray,age:int,sex:char
我的数据采用以下格式..{"Foo":"ABC","Bar":"20090101100000","Quux":"{\"QuuxId\":1234,\"QuuxName\":\"Sam\"}"}我需要它采用这种格式:{"Foo":"ABC","Bar":"20090101100000","Quux":{"QuuxId":1234,"QuuxName":"Sam"}}我正在尝试使用Pig的替换功能以我需要的格式获取它..所以,我试过了.."LOGS=LOAD'inputloc'USINGTextStorage()asunparsedString:chararray;;"+"REPL1=fo
我想找出年龄在19到60岁之间的用户数量。下面是示例查询loadtable=load'/user/userdetails.txt'usingPigStorage(',')AS(name:chararray,age:int);filteredvalues=filterloadtableby(age>19ANDage我收到以下错误“无效的标量投影:已分组:需要从关系中投影列才能将其用作标量” 最佳答案 您必须计算过滤后的值而不是分组。total=foreachgroupedgenerateCOUNT(filteredvalues);
我有一些数据,比如(名字,分数)一个10乙25C15一个5一个36乙98C78C78乙12data=LOAD'demo.txt'usingPigStorage(',')as(name:chararray,score:int);groupScore=GROUPdatabyscore;totalscore=FOREACHgroupScoreGeneratedata.name,SUM(data.score);当我使用SUM()函数时,输出结果如下{(A)(A)(A),(51)}{(B)(B)(B),(135)}我想知道是否有任何我可以展示的东西{(A),(51)},这不是在每次出现时都重复“
我的Pig的一个过滤器功能有问题。但首先,我会告诉你上下文。A=LOAD'pig/hado/start_extrait2.csv'USINGPigStorage(';')as(DAT_START:chararray,COD_IPUSER:chararray,NDI_START:chararray);hado_search_file=LOAD'pig/hado/recherche_hado.csv'USINGPigStorage(';')as(DATE_HADO:chararray,IP_RECHERCHEE:chararray);result2=JOINhado_search_file
我有一个名为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
我想创建一个HiveUDF函数,该函数根据某些值返回特定的列名,例如retreivecol(age)。如果年龄为20,则返回要在选择查询中使用的列名列表,例如“name,email,fbuserid、friend列表等,如果年龄小于20岁,则单独返回“姓名”。所以我希望我的HIVEQL查询看起来像从User_Data中选择retreivecol(age);上面的查询只打印列的名称,如“name、email、fbuserid、friendslist”等,而不是将它们视为列名称并基于相同的名称进行过滤。感谢任何指针。 最佳答案 我不确定
在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