草庐IT

hadoop - 从 pig 开始

这可能是一个非常愚蠢的问题,但我无法在我的机器上正确安装pig。pig的版本是0.9.0。我什至将我的JAVA_HOME设置为其指定路径。我已将路径设置为exportPATH=/usr/local/pig-0.9.0/bin:$PATH因为我的pig目录在/usr/local/中。每当我键入pig或pig-help时,我都会收到以下消息su:/usr/local/pig-0.9.0/bin/pig:Permissiondenied请帮忙。谢谢。 最佳答案 尝试输入:chmod+x/usr/local/pig-0.9.0/bin/pi

hadoop - 如何在Cloudera的Hadoop+Pig发行版中编译一个UDF

我正在运行Cloudera的VM(CH3)。我在我的文本编辑器中复制了一个简单的UDF,但我不知道如何编译它以便能够在脚本中调用它。PigUDF手册http://pig.apache.org/docs/r0.7.0/udf.html说要构建pig.jar,但是指向SVN的链接已断开:svncohttp://svn.apache.org/repos/asf/hadoop/pig/trunk.有人可以告诉我他们是如何编译UDF的吗?谢谢 最佳答案 最简单的方法是使用MavenrepositoryfromCloudera,您只需将Pig指

hadoop - 是否可以以将多行作为单个输入元组处理的方式使用 Pig 流式处理 (StreamToPig)?

我通过一个可执行文件在pig脚本中流式传输数据,该可执行文件为我流式传输到它的每一行输入返回一个xml片段。该xml片段恰好跨越多行,我无法控制流式传输到的可执行文件的输出关于UseHadoopPigtoloaddatafromtextfilew/eachrecordonmultiplelines?,答案是建议编写自定义记录阅读器。问题是,如果你想实现一个从文件中读取的LoadFunc,这很好用,但为了能够使用流,它必须实现StreamToPig。据我所知,StreamToPig一次只能读取一行有人知道如何处理这种情况吗? 最佳答案

hadoop - 如何在 Pig 中做条件 JOIN?

我有两个关系A,BDESCIBEAA:{ip_num:long,data:int}DESCIBEBB:{ip_start_num:long,ip_end_num:long}我想要的产品:C:{group:(ip_start_num:long,ip_end_num:long),B:{(ip_num:long,data:int)}}whereip_num>ip_start_num&&ip_num是否有可能与PigLatin相关? 最佳答案 然而,您需要在嵌套的FOREACH中执行FILTER操作;好像有错误,这样的句子连解析都不会。ht

java - 以自定义格式将 apache pig 数据输出到文件

我有一个制表符分隔的数据输入,由于数据大小,需要使用ApachePig进行处理。我已成功加载数据甚至对其进行了分析,但我想将输出存储到原始格式的文件中,而不是存储元组。SampleInputA\tBA\tBSampleOutputA\tBA\tB而不是(A,B),(A,B)StoreDinto'output'usingPigStorage('\n')问题出在哪里? 最佳答案 您已经加载了制表符分隔的输入,但您正在将其写回换行符(\n)分隔。尝试:StoreDinto'output'usingPigStorage('\t');或Sto

hadoop - 统计 GROUP BY 中 PIG 查询和 MySql 查询结果的差异

我的PIG查询如下所示emp=LOAD'hdfs://master:9000/hrms/DimEmployee'AS(EmployeeID,OrganizationID,EmploymentType);grouped=groupempby(OrganizationID,EmploymentType);AggEmploymentType=FOREACHgroupedGENERATEgroup.OrganizationID,group.EmploymentType,COUNT(emp.EmployeeID)ascnt;DUMPAggEmploymentType;下面给出了上述pig查询的逐

hadoop - 为 hadoop/PIG 输出数据分配 ID

我正在研究PIG脚本,它对原始交易执行繁重的数据处理,并提出各种交易模式。假设其中一种模式是-查找一天内收到跨境交易的所有账户(包括交易总额和交易金额)。我预期的输出应该是两个数据文件1)汇总数据——比如账户A1从国家AU收到了50笔交易。2)原始交易——A1的所有超过50笔交易。我的PIG脚本当前正在创建以下格式的输出数据源账户国家TotalTxnsRawTransactionsA1AU50[(Txn1),(Txn2),(Txn3)....(Txn50)]A2JP30[(Txn1),(Txn2)....(Txn30)]现在这里的问题是,当我从Hadoop系统(到某个数据库)中获取这些

hadoop - PIG 从一个 Bag 中选择另一个 Bag 的数据

我是HADOOP和PIG的新手。我有两个包:DUMPA:(1)(2)(4)DUMPB:(1,John,USA)(2,Richard,UK)(3,Ian,Ireland)(4,Simon,Canada)BagB列出了每个人。BagA里有我感兴趣的东西。我相信有一种简单的方法可以得到我感兴趣的人:(1,John,USA)(2,Richard,UK)(4,Simon,Canada)谁能把我从痛苦中解救出来?提前谢谢你。 最佳答案 您应该能够通过类似于以下的命令加入并显示这两个集合:JOINSET=joinAby$0,Bby$0;DUMPJ

hadoop - 将关系存储到本地文件中的 pig 不起作用

我是pig的新手,我正在使用存储在/etc/passwd中的passwd文件。我已经使用以下代码在本地模式下启动了pigA=LOAD'passwd'usingPigStorage(':');B=foreachAgenerate$0asid;STOREBINTO'output';给我以下错误,作业未能产生结果。最后一行如果写为DUMPB;生成输出。这里有什么问题。?提前致谢FailedJobs:JobIdAliasFeatureMessageOutputsjob_local_0004A,BMAP_ONLYMessage:Jobfailed!Error-NAfile:///home/mon

hadoop - 如何加速 Pig MultiStorage

我正在使用Pig的MultiStorage将一个输入文件拆分成许多较小的输出文件。如果有帮助,脚本如下所示:a=load'$FILES'usingAvroStorage();a_projected=foreachageneratefield1,field2;a_explode=foreacha_projectedgeneratefield1,FLATTEN(TOKENIZE(field2));--splittingbasedonfield2storea_explodeinto'$OUTPUT'usingorg.apache.pig.piggybank.storage.MultiStor