草庐IT

pig_test

全部标签

java - .pig 脚本与 java 嵌入式 pig : Which one is the fastest?

我的项目有一个ASCII输入文件,我使用pig脚本进行映射缩减。在此脚本中,我使用子字符串获取指定的字符间隔。我想问一下如果我用java取char间隔然后将jar文件嵌入到另一个pig脚本中减少我的数据,我的程序运行得更快还是不快? 最佳答案 这完全取决于您如何在map方法中实现char间隔拆分。如果您知道您的数据,则可以优化子字符串。检查这个线程:charAt()orsubstring?Whichisfaster?此外,一般来说,将jar添加到hadoop集群会增加一些文件传输和设置内部内容(类加载器、解包等)的开销,但在这种情况

linux - 克服 HDFS-2556 : unit tests directory and permissions

我正在尝试在hadoop上进行JUnit测试,我使用MiniDFSCluster、MiniMRCluster和JUnit编写了一个在本地mini-hadoop环境中运行的测试用例。但是我收到了这个错误:WARNING:Metricssystemnotstarted:Cannotlocateconfiguration:triedhadoop-metrics2-datanode.properties,hadoop-metrics2.propertiesDec18,20124:42:29PMorg.apache.hadoop.hdfs.server.datanode.DataNodemake

map - PIG UDF 加载 .gz 文件失败

我编写了UDF以将文件加载到Pig中。它适用于加载文本文件,但是,现在我还需要能够读取.gz文件。我知道我可以解压缩文件然后处理,但我只想读取.gz文件而不解压缩它。我的UDF从LoadFunc扩展,然后在我的自定义输入文件MyInputFileextendsTextInputFormat中。我还实现了MyRecordReader。只是想知道extendsTextInputFormat是否是问题所在?我尝试了FileInputFormat,仍然无法读取文件。有人写过UDF从.gz文件读取数据吗? 最佳答案 TextInputForm

hadoop - 在 Pig 中过滤分组值

我有一个正在分组的关系。我怎样才能像map一样访问分组值?data=load'log.txt'as(id:chararray,name:chararray);grouped=groupdatabyid;foreachdata{filtered=filtergroupbygroup.id=data.id;};我尝试迭代组并过滤结果包的一种方法。但我的情况是我必须迭代一个外部元组,然后必须从这些结果中从分组值中获取相应的包。我尝试了嵌套的foreach,但出现以下异常,expressionisnotaprojectexpression:(Name:ScalarExpression)Type

hadoop - 使用 cygwin 在 Windows 中安装 pig

我在windowsxp中使用cygwin安装pig-0.11.1。我提取了我的pig_home文件夹并将其放置在cygwin的用户目录中。当我尝试在提示符下命令./pighelp时,它显示以下错误。其中:(/usr/local/bin:/usr/bin:/cygdrive/c/ProgramFiles/Java/jdk1.6.0_31/bin:/home/sunil/pig-0.11.1/bin中没有hadoop)cygpath:无法创建C:\cygwin\home\sunil\pig-0.11.1\logs的短名称找不到pig.jar。做'antjar',然后再试一次我能得到一些关于

hadoop - 如何设置首选项以在 Eclipse 中运行 PIG 脚本?

我在我的eclipse中下载并安装了pigpen插件,我按照thislink中的步骤操作)但是当我设置Pig的ConfigurationPath时有点困惑。谁能告诉我如何设置首选项以在eclipse中运行pig脚本。我很累,但没有正常工作。 最佳答案 您是否使用UnixBox来运行Eclipse?如果答案是肯定的,那么你可以让它工作。如果你在Windows上工作并使用SSH客户端连接到Unix框,恐怕它不会工作(至少按照你帖子中提到的链接) 关于hadoop-如何设置首选项以在Eclip

hadoop - 如何使用 PIG 在 Hadoop 中给定阈值进行连接

假设我有一个具有以下架构的数据集:ItemName(String),Length(long)我需要根据长度找到重复项。这在PIG中很容易做到:raw_data=LOAD...datasetgrouped=GROUPraw_databylengthitems=FOREACHgroupedGENERATECOUNT(raw_data)ascount,raw_data.name;dups=FILTERitemsBYcount>1;STOREdups....上面找到了完全相同的重复项。给定以下设置:一、100二、105三、100它会输出2,(a,c)现在我需要使用阈值查找重复项。例如,如果项目

hadoop - 如何将输入模式附加到 pig 中的输出

我写了一个UDF,其中我的输入模式是一袋元组,现在在我的UDF中,我正在处理每个元组并为每个元组附加额外的字段并将其提供给输出包。这很好用,现在在我的下一步中,我尝试创建我的输出包的输出模式,我只想在我的包输入的元组中附加一个字段。我该怎么做?这是我的输入包架构。xx:{(uniqueRS::PreprocUDF::id:long,uniqueRS::PreprocUDF::dominion:chararray,uniqueRS::PreprocUDF::affectedItemGRN:chararray,uniqueDomAndUser:{(PreprocUDF::dominion:

hadoop - 使用 SPLIT 和 COGROUP 的 Pig LOAD 以及映射器的数量

我注意到,当我在加载后的pig脚本中引入“SPLIT”和“COGROUP”语句时,pig作业中的映射器数量会翻倍。这个对吗?有谁知道为什么会这样?我使用PigStorage加载数据集:A=LOAD'test.csv'USINGPigStorage;cattest.csvA123A345B234B123然后我使用SPLIT将数据集拆分为两个关系(使用过滤器结果相同)。然后,我将这两个关系组合为一个,并存储它。SPLITAINTOAAIF$0=='A',ABIF$0=='B';CG=COGROUPAABY$1,ABBY$1;STORECGINTO'cg'USINGPigStorage();

hadoop - 如何在 Pig 中拆分具有 '\t' 和 ',' 值的文本文件

我想将具有制表符和逗号分隔值的文本文件转换为PIG中的完全逗号分隔值。我正在使用ApachePig版本0.11.1.,我尝试使用以下代码并尝试使用FLATTEN、TOKENIZE。但我不能把它变成完整的CSV文件。a=load'/home/mansoor/Documents/ip.txt'usingPigStorage(',')as(key:chararray,val1:chararray,val2:chararray);b=FOREACHa{key=STRSPLIT(key,'\t');GENERATEkey;}以下是我的文本文件输入:M12345M123456,M234567,M9