我在用pig做数据准备,遇到了一个看似简单却无法解决的问题:比如我有一列名字name------AliciaAnaBenitaBertaBertha那我如何为每个名字添加一个行号呢?结果会是这样的:name|id----------------Alicia|1Ana|2Benita|3Berta|4Bertha|5感谢您阅读这个问题! 最佳答案 当您问这个问题时,Pig没有执行此操作的机制。但是,Pig0.11引入了一个RANKoperator可用于此目的。 关于hadoop-如何在pi
我有一堆具有各种前缀的字符串,包括“未知:”我真的很想在我的Pig脚本中过滤掉所有以“未知:”开头的字符串,但它似乎不起作用。simpleFilter=FILTERrecordsBYNOT(mystrMATCHES'^unknown');我已经尝试了正则表达式的一些其他排列,但似乎MATCHES不能很好地与NOT一起工作。我错过了什么吗?使用Pig0.9.2 最佳答案 这是因为matches运算符的操作与Java的String#matches完全相同,即它试图匹配整个String而不仅仅是它的一部分(你的例子中的前缀).只需更新您的
我正在尝试在Amazon的ElasticMapReduce上运行我的Pig脚本(使用UDF)。我需要在我的UDF中使用一些静态文件。我在我的UDF中做了这样的事情:publicclassMyUDFextendsEvalFunc{publicDataBagexec(Tupleinput){...FileReaderfr=newFileReader("./myfile.txt");...}publicListgetCacheFiles(){Listlist=newArrayList(1);list.add("s3://path/to/myfile.txt#myfile.txt");retu
我一直在尝试让Pig0.9.0使用ApacheHadoop0.20.203.0运行。我在谷歌和邮件列表中查看了高低,甚至这个问题:cantrunpigwithsinglenodehadoopserver,但我仍然无法让PigshellGrunt在集群设置中运行(当然,我可以在本地模式下正常运行提示符)。我已经尝试了给出的解决方案-在没有hadoop的情况下重新编译,将hadoop库和pig-withouthadoop.jar添加到我的PIG_CLASSPATH变量中......没有任何效果。我刚得到错误2011-08-0210:56:00,709[main]ERRORorg.apach
我们在一个小的(16M行)不同表和一个大的(6B行)倾斜表之间有一个pig连接。常规连接在2小时内完成(经过一些调整)。我们尝试使用skewed并能够将性能提高到20分钟。但是,当我们尝试更大的倾斜表(19B行)时,我们从SAMPLER作业中得到这条消息:Splitmetadatasizeexceeded10000000.Abortingjobjob_201305151351_21573[ScriptRunner]atorg.apache.hadoop.mapreduce.split.SplitMetaInfoReader.readSplitMetaInfo(SplitMetaInfo
假设我有下表:A:{x:int,y:int,z:int,...99othercolumns...}我现在想对此进行转换,以便将z设置为NULL,其中x>y,并存储生成的数据集作为B。而且我想这样做而不必明确提及所有其他列,因为这会成为维护的噩梦。有没有简单的解决办法? 最佳答案 此JIRA中跟踪了此问题:PIG-1693foreach中需要有一种方法来指示“以及所有其他字段”目前,我不知道有什么比按您说的做或不加载Z并使用starexpression添加新列Z更简单的了。. 关于hado
我是Pig的新手,我有一个非常基本的问题:我可以让MakePig从目录加载所有文件,包括子文件夹中的文件吗?以下是我的处理方式:records=LOAD'/worldwide/data/'USINGPigStorage()AS(event:chararray,user:chararray);这里,repo/data可能有子文件夹,例如repo/data/region/cluster1repo/data/region/cluster2我能否让它从这些子目录和将来可能添加的任何新目录中加载所有内容? 最佳答案 确认上述语句有效并将子目录
给定一个第一行可以作为标题的csv文件,如何使用这些标题在Pig中动态加载字段名称?即id,year,total1,1999,1902,1998,20a=LOAD'/path/to/file.csv'USINGPigStorage()AS--usefirstrowasfieldnames>describea;>id:bytearray,year:bytearray,total:bytearray 最佳答案 由于这是一个CSV文件,并且您想将第一行用作标题,因此您应该使用CSVLoader()。它会将第一行视为标题。您的脚本将是这样的
我正在尝试通过Pig程序使用Amazon的ElasticMapReduce解析我们的服务生成的制表符分隔数据文件。一切进展顺利,除了我们所有的数据文件都包含一个定义每一列用途的标题行。显然,(字符串)header不能转换为数字数据值,因此我从Pig收到如下警告:2011-03-1722:49:55,378[main]WARNorg.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigHadoopLogger-org.apache.pig.builtin.PigStorage:Unabletointerpretvalue
我在伪分布式模式下使用CDH4,我在同时使用HBase和Pig时遇到了一些问题(但两者都可以单独工作)。我正在逐步遵循这个不错的教程:http://blog.whitepages.com/2011/10/27/hbase-storage-and-pig/所以我的Pig脚本看起来像这样register/usr/lib/zookeeper/zookeeper-3.4.3-cdh4.1.2.jarregister/usr/lib/hbase/hbase-0.92.1-cdh4.1.2-security.jarregister/usr/lib/hbase/lib/guava-11.0.2.ja