我对HadoopMapreduce和Pig环境有疑问。在thisthread中,我发现PigLatin代码被Pig系统解释了。首先,我认为Pig使用map和reduce方法创建.jar文件,然后将此文件“发送”到HadoopMapreduce环境以运行mapreduce作业(这是Pig开发人员future的工作)。那么,PigSystem到底在什么时候使用HadoopMapreduce?它是在解释PigLatin代码的某个地方吗?或者,如果我换句话说问我的问题:作为输入发送到HadoopMapreduce的Pig的输出是什么?非常感谢您的回答。 最佳答案
我必须使用ApachePIG将需要组合在一起的文件。第一个文件包含书名列表,就像这样,每个书名都单独占一行。TedDunning,MahoutinActionLeoTolstoy,WarandPeaceDouglasAdams,Thehitchhikerguidetothegalaxy.JamesSununu,galaxyIIIforDummiesTomMcArthur,TheWarwewentto第二个文件是单词及其ID的列表。像这样ted,12tom,13douglas,14galaxy,15war,16leo,17peace,18我需要加入这两个文件来产生这样的输出:对于“Leo
我有一个值列表作为一个数据源和第二个数据集,其中包含与值相关的范围。Dataset1:346202538Dataset2:1|3|A4|10|B11|20|C21|30|D31|31|E32|38|F39|40|GResult:3,A4,B6,B20,C25,D38,F我想创建某种类型的“JOIN”以将数据集1中的值与数据集2中的字符联系起来。 最佳答案 主要问题是MapReduce进行连接的方式需要键完全匹配,并且它会在分区器中随机存储内容(默认情况下)。使用JavaMapReduce可能有很多棘手的方法可以做到这一点。下面是我能
我有一个如下所示的示例表:callerreceiver100200100300400100100200我需要找到每个号码的唯一连接数。例如:100将具有200,300和400之类的连接。我的输出应该是这样的:1003200130014001我正在使用配置单元进行尝试。如果这不能由hive完成,那么是否可以由pig完成 最佳答案 这是一种方法来满足您的需求(虽然我不完全相信它是最佳的,但我会留给您进行优化)。你需要thisjar,如何构建非常简单。查询:addjar./brickhouse-0.7.1.jar;--nameandpat
我想使用Apachepig将一个文件分成4个相等的部分。例如,如果一个文件有100行,前25行应该转到第一个输出文件,依此类推。最后25行应该转到第4个输出文件。有人可以帮助我实现这一目标。我正在使用Apachepig,因为文件中的记录数将以百万为单位,并且前面的步骤生成需要使用Pig拆分的文件。 最佳答案 我对此进行了深入研究,因为它出现在Hadoop的Hortonworks示例考试中。它似乎没有很好的记录——但它真的很简单。在此示例中,我使用了可在dev.mysql.com上下载的国家/地区示例数据库:grunt>storeme
我想使用Apachepig,但直到现在我才解析了格式化数据,例如csv或逗号分隔等。但是如果我有一些数据用';'分隔&'@&@'等,我该如何使用它?就像我使用MapReduce时一样,我用“;”分割数据在map中,然后在reduce中再次通过“@&@”。还假设我们有一个csv文件,其中第一个字段用户名由“FirstnameLastname”格式制作,raw=LOAD'log.csv'USINGPigStorage(',')AS(username:chararray,site:chararray,viwes:int);通过上面的例子我们可以得到完整的用户名,但是我怎样才能让名字和姓氏不同
我的代码是这样的:pymt=LOAD'pymt'USINGPigStorage('|')AS($pymt_schema);pymt_grp=GROUPpymtBYkeyresults=FOREACHpymt_grp{/**somekindoflogic,filter,count,distinct,sum,etc.*/}但是现在我发现很多这样的日志:org.apache.pig.impl.util.SpillableMemoryManager:Spilledanestimateof207012796bytesfrom1objects.init=5439488(5312K)used=424
这是我的(看似微不足道的)PIG脚本,后面是它生成的异常:raw_logs=LOAD'./Apache-WebLog-Samples.d/access_log.txt'USINGTextLoader()AS(line:chararray);logs=FOREACHraw_logsGENERATEFLATTEN(REGEX_EXTRACT_ALL(line,'^(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+\\[([\\w:/]+\\s[+\\-]\\d{4})\\]\\s+"(..*)"\\s+(\\S+)\\s+(\\S+)'))AS(remoteAddr:charar
我有一个像下面这样的pig关系:最终={input_md5::type:chararray,input_md5::name:chararray,input_md5::id:long,input_md5::age:chararray,test_1::type:chararray,test_2::name:chararray}我正在尝试存储input_md5的所有列与hive表的关系。喜欢所有input_md5::type:chararray,input_md5::name:chararray,input_md5::id:long,input_md5::age:chararray不服用te
我有以下文件:File----12-3John1215-1Sam122该文件是制表符(\t)分隔的。我将行加载为line:chararray,因为我希望数据不会在各个字段中拆分。现在,我想提取详细信息(12-3和5-1)并将其存储为单独的数据。我正在尝试使用STRSPLIT和REGEX_EXTRACT_ALL,但数据似乎不匹配。splitdata=FOREACHfiledata{regex=REGEX_EXTRACT_ALL(line,'^([0-9]*)\\-([0-9]*)');split=STRSPLIT(line,'\\t',1);GENERATEregex,split;};这