草庐IT

PIG_HOME

全部标签

hadoop - 如何使用加载命令在 pig 的文件夹中加载多个文本文件?

我一直用它来加载一个文本文件A=LOAD'1try.txt'USINGPigStorage('')as(c1:chararray,c2:chararray,c3:chararray,c4:chararray); 最佳答案 您可以使用文件夹名代替文件名,如下所示:A=LOAD'myfolder'USINGPigStorage('')AS(c1:chararray,c2:chararray,c3:chararray,c4:chararray);Pig将加载指定文件夹中的所有文件,如ProgrammingPig中所述:Whenspecif

hadoop - EMR - 从 S3 运行 Pig 脚本时出现问题

我尝试在EMR上运行Pig脚本,例如:pig-fs3://bucket-name/loadData.pig但它失败并出现错误:错误2999:意外的内部错误。空java.lang.NullPointerException异常在org.apache.pig.impl.io.FileLocalizer.fetchFilesInternal(FileLocalizer.java:778)在org.apache.pig.impl.io.FileLocalizer.fetchFiles(FileLocalizer.java:746)在org.apache.pig.PigServer.registe

hadoop - Pig 字段中的拆分字符

我有一个带有“|”的文本输入分隔符为0.0000|25000||BM|BM901002500109999998|SZ我使用PigStorage拆分A=LOAD'/user/hue/data.txt'usingPigStorage('|');现在我需要根据位置将字段BM901002500109999998分成不同的字段,例如0-2=BM-Field1等等。所以在这一步之后我应该得到BM,90100,2500,10,9999998。Pig脚本中有什么方法可以实现这一点,否则我打算编写一个UDF并将分隔符放在所需位置。谢谢。 最佳答案 您

hadoop - 错误 1070 : Could not resolve Pigstorage using imports: [, java.lang., org.apache.pig.builtin., org.apache.pig.impl.builtin.]

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭5年前。Improvethisquestion当我尝试在pig中加载数据集时出现错误grunt>movies=LOAD'/home/cloudera/Documents/movies_data.csv'USINGPigstorage(',')as(id,name,year,rating,duration);

hadoop - 如何从 pig 中的文本文件的一行中转储特定列?

我是pig的新手。我的数据在.txt文件中,我想从这个文本文件中检索特定的列。列在这个文本文件中用;分隔。例如,如果行是1;1;13;2010-09-13T19:16:26.763;239;383084;10;16575;2013-04-05T15:50:48.133;2015-11-21T04:55:50.150;我已经root了我的手机。怎么办?我从生根中得到什么?;2;0;162;2011-01-25T08:44:10.820;,然后我想从上面的行中检索第4列。那么,检索4th列的pig脚本应该是什么,即(239)。 最佳答案

hadoop - 使用 Apache Pig 从文件中删除 "string expression"的过程/代码是什么?

A=load'/home/wrdtest.txt';B=foreachAgenerateflatten(TOKENIZE((chararray)$0))asword;C=filterBbyword!='the';D=groupCbyword;E=foreachDgenerateCOUNT(C)ascount,groupasword;F=orderEbycountdesc;storeFinto'/tmp/sample_data20';我只想过滤文本。第三步过滤文本并从文本文件中删除“the”。但我想从文本中删除一组499个单词(停用词)。我尝试使用“|”(作为或)喜欢:C=filterB

hadoop - 有没有办法在 pig 中添加日期时间?

我想在pig中做的事情在sql中很常见。我有一个格式为yyy-mm-ddhh:mm:ss的日期字段,还有另一个字段包含一个表示小时数的整数。有没有一种方法可以轻松地将整数添加到日期时间字段,以便我们得到我们期望的时钟数学结果。示例:日期为2013-06-01:23:12:12。然后我加2小时我应该得到2013-06-0201:12:12。 最佳答案 使用最新版本的Pig(0.11.0)应该可以。但小时数(时间)应符合ISO8601DurationFormat。它提供了AddDuration类,它允许我们添加带有Duration对象的

hadoop - pig 将如何生成工作的DAG

我正在使用PIG处理数百万条记录的提要。从HDFS读取提要后,我需要执行三个不同的“分组依据”操作,然后合并所有操作的结果。可以说,无论关系联合的模式如何,都可以正常工作。现在我的问题是PIG如何生成执行的DAG,并且所有这三个groupby操作将并行执行。 最佳答案 pig的加工步骤如下:脚本解析检查语法和引用的变量是否有效类型检查模式推断检查自定义类(UDF)(实例化等)输出:规范的逻辑计划,它是piglatin语句和逻辑运算符之间的一对一映射,以DAG的形式排列。逻辑优化器逻辑计划通过逻辑优化器传递(例如:投影下推是执行)bo

hadoop - 如何在 Apache Pig 中对多个展平列进行分组

我有3种不同模式的数据:(1,12,43)(1,6,20)(2,8,43)(2,5,13)`我尝试对$0进行分组,结果输出为(1,{(1,12,43),(1,6,20)})(2,{(2,8,43),(2,5,13)}我们怎样才能产生喜欢,(1,{12,6},{43,20})(2,{8,5},{43,13}) 最佳答案 为此,您将需要一个嵌套的foreach:A=LOAD'your_data'usingPigStorage(',');B=groupAby$0;C=foreachB{AUX=foreachAgenerate$1,$2;g

hadoop - Pig 的 UDF 中存在 "in"会导致问题

我在pig中尝试我的第一个UDF并编写了以下函数-packagecom.pig.in.action.assignments.udf;importorg.apache.pig.EvalFunc;importorg.apache.pig.PigWarning;importorg.apache.pig.data.Tuple;importjava.io.IOException;publicclassCountLengthextendsEvalFunc{publicIntegerexec(TupleinputVal)throwsIOException{//ValidateInputValue..