这是我第一次在StackOverflow上发帖,我希望有人能提供帮助。我对Pig脚本还很陌生,遇到了一个我无法解决的问题。下面是一个pig脚本,当我尝试将结果写入文件时失败了:register'myudf.py'usingjythonasmyfuncs;A=LOAD'$file_nm'USINGPigStorage('$delimiter')AS($fields);B=FILTERAby($field_nm)ISNOTNULL;C=FOREACHBGENERATE($field_nm)asfld;D=GROUPCALL;E=FOREACHDGENERATEmyfuncs.theResu
我想对包含长类型数字的列求和。我尝试了很多可能的方法,但仍然没有解决转换错误。我的pig代码:raw_ds=LOAD'/tmp/bimallik/data/part-r-00098'usingPigStorage(',')AS(d1:chararray,d2:chararray,d3:chararray,d4:chararray,d5:chararray,d6:chararray,d7:chararray,d8:chararray,d9:chararray);parsed_ds=FOREACHraw_dsGENERATEd8asinBytes:long,d9asoutBytes:lon
我在apachepig中有以下数据({(ABC,123,XYZ,{(1,2,3),(4,5,6)},QWE)})我想提取特定的字段,就像我的预期输出一样ABC,123,1,2,3ABC,123,4,5,6我们如何使用pig来做到这一点? 最佳答案 我自己完成了一点点阅读out=foreachagenerateFLATTEN($0);out1=foreachoutgenerate$0,$1,flatten($3); 关于hadoop-Pig-压扁数据包,我们在StackOverflow上找
我的数据中出现了非常奇怪的字符“\N”。我想从数据中删除或替换这个字符。以下是数据示例:GirlsShoes,1325051884\N,\NMen'sShirts,\N分隔符:逗号(,)我尝试了几种方法来替换/识别这个\N字符但没有用。 最佳答案 在Pig中,位置符号用美元符号($)表示并以零(0)开头;例如,$0、$1、$2。因此,在上述数据中,第一个字段由$0标识(例如“女鞋”),第二个字段由$1标识(例如1325051884)。以下脚本具有替换'\N'的逻辑:A=LOAD'/data.txt'USINGPigStorage('
我正在使用只有4个节点的hadoopCloudera系统,但磁盘空间很大(200TB)。在我的pig脚本中,我每月加载几个文件,每个文件的大小约为200Gb。我注意到,如果我在我的pig脚本中加载大约一年的数据,Pig会创建大约15k个mappers,整个过程大约需要3个小时(包括reduce步骤)。相反,如果我加载三年的数据(大约5TB),那么Pig会创建大约30k个mappers,基本上所有节点在处理超过15次后都会变得不健康小时。我是不是遇到了瓶颈?或者我应该使用一些默认选项?我的pig脚本非常基本:我分组,我数数。非常感谢! 最佳答案
我使用不同的参数运行同一个PIG脚本的多个实例。当集群负载很重时,MapReduce作业日志显示大量reducer被抢占,这需要时间:ReducerpreemptedtomakeroomforpendingmapattemptsContainerkilledbytheApplicationMaster.Containerkilledonrequest.Exitcodeis143Containerexitedwithanon-zeroexitcode143如何避免此类抢占问题以最小化脚本执行时间? 最佳答案 看看this关联。简而言之
如何以简单的yyyy-MM-dd格式将日期传递给pig脚本?我正在传递如下日期:pig-fscript.pig-paramdt="2016-06-03"在脚本中,如果我使用:ToDate($dt,'yyyy-MM-dd')它显示输出为:1969-12-31T18:00:02.007-06:00我尝试阅读pigToDate文档,但似乎没有帮助。 最佳答案 看起来你缺少'ToDate('$dt','yyyy-MM-dd')从有关参数替换的文档中查看此示例:%declareDESC'Joe\'sURL'A=load'data'as(nam
我在我的gruntshell中使用它:customers=LOAD'hdfs://localhost:9000/pig_data_customers'USINGPigStorage(',')as(id:int,name:chararray,age:int,address:chararray,salary:double);数据在这里:[root@localhostbin]#hdfsdfs-cathdfs://localhost:9000/pig_data_customers1,Ramesh,32,Ahmedabad,2000.002,Khilan,25,Delhi,1500.003,ka
我正在尝试读取从Kaggle获得的电影数据集使用Apachepig。其中一个.csv文件名为“keywords.csv”,它有这样的元组:862,[{'id':931,'name':'jealousy'},{'id':4290,'name':'toy'},{'id':5202,'name':'boy'},{'id':6054,'name':'friendship'},{'id':9713,'name':'friends'},{'id':9823,'name':'rivalry'},{'id':165503,'name':'boynextdoor'},{'id':170722,'name
我看过文档here,但我承认我觉得它相当缺乏。我想知道是否有人可以给我收集有关将PythonUDF合并到Pig中的示例。特别是在Pig0.10之前,不存在bool类型,但是FILTER操作需要将结果解析为bool值。如果我没有最新版本?是否无法从Python访问Algebraic、Accumulator和Filter接口(interface)?我也不能访问分布式缓存吗?Store/Load函数呢? 最佳答案 PythonUDF非常有限。您不能使用Algebraic或Accumulator接口(interface),也不能用Pytho