草庐IT

hadoop - 如何从 pig 脚本中运行 Mapreduce

我想了解如何从pig脚本中集成调用mapreduce作业。我提到了链接https://wiki.apache.org/pig/NativeMapReduce但我不确定该怎么做,因为它会如何理解我的映射器或缩减器代码。解释的不是很清楚。如果有人能举例说明,那将有很大的帮助。提前致谢,干杯:) 最佳答案 示例来自pigdocumentationA=LOAD'WordcountInput.txt';B=MAPREDUCE'wordcount.jar'STOREAINTO'inputDir'LOAD'outputDir'AS(word:ch

hadoop - SET default_parallel 1;声明不适用于 pig

我是pig的新手,根据我的理解,SETdefault_parallel1语句应该生成一个输出文件,因为它将使用一个reducer。但是当我在下面的脚本中使用这个命令时,它给了我2个o/p文件。SETdefault_parallel1;A=LOAD'hdfs:/pigfldr/union1'usingPigStorage('')AS(sln:int);B=LOAD'hdfs:/pigfldr/union2'usingPigStorage('')AS(sln:int);C=UNIONA,B;STORECINTO'hdfs:/pigfldr/unionfres';

hadoop - 更改 pig latin 中列的数据类型

我和pig拉丁语有关系。有很多列,所以我不想在加载关系时指定数据类型。有没有办法在事后改变它?batters=LOAD'hdfs:/home/ubuntu/pigtest/Batting.csv'usingPigStorage(',');filtered_batters=FOREACHbatters2GENERATE$0asid,$5asbats;describefiltered_batters;filtered_batters:{id:bytearray,bats:bytearray}我问的原因是因为我试图按id分组并对bats列求和,但出现错误。我的想法是数据类型不适合求和。现在它

hadoop - Apache Pig 从具有组的数据集中获取最大值

我有一个数据集存储在HDFS中的一个名为temp.txt的文件中,如下所示:US,Arizona,51.7US,California,56.7US,BullheadCity,51.1India,Jaisalmer,42.4Libya,Aziziya,57.8Iran,LutDesert,70.7India,Banda,42.4现在,我通过以下命令将其加载到Pig内存中:temp_input=LOAD'/WC/temp.txt'USINGPigStorage(',')as(country:chararray,city:chararray,temp:double);在此之后,我将temp_

hadoop - 如何用pig输入多参数

我有3个表要批量输入,如何在pig中指定参数?比如tmp/001.csv,tmp/002.csv,tmp/003.csv,在pig脚本中,我怎么写-param和LOAD语句一次性输入这些表?有人给我举个例子pig-paramnums="'001','002','003'"test.pig在pig脚本中,LOAD'tmp/{nums}.csv'AS...但看起来pig只读取了001.csv。 最佳答案 您很可能还需要将/tmp移动到参数中:pig-paramins=/tmp/001.csv,/tmp/002.csv,/tmp/003.

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)。 最佳答案