草庐IT

Pig-Latin

全部标签

hadoop - 如何使用配置单元/ pig 查找唯一连接数

我有一个如下所示的示例表:callerreceiver100200100300400100100200我需要找到每个号码的唯一连接数。例如:100将具有200,300和400之类的连接。我的输出应该是这样的:1003200130014001我正在使用配置单元进行尝试。如果这不能由hive完成,那么是否可以由pig完成 最佳答案 这是一种方法来满足您的需求(虽然我不完全相信它是最佳的,但我会留给您进行优化)。你需要thisjar,如何构建非常简单。查询:addjar./brickhouse-0.7.1.jar;--nameandpat

hadoop - 使用 Apache Pig 将文件分成 4 个相等的部分

我想使用Apachepig将一个文件分成4个相等的部分。例如,如果一个文件有100行,前25行应该转到第一个输出文件,依此类推。最后25行应该转到第4个输出文件。有人可以帮助我实现这一目标。我正在使用Apachepig,因为文件中的记录数将以百万为单位,并且前面的步骤生成需要使用Pig拆分的文件。 最佳答案 我对此进行了深入研究,因为它出现在Hadoop的Hortonworks示例考试中。它似乎没有很好的记录——但它真的很简单。在此示例中,我使用了可在dev.mysql.com上下载的国家/地区示例数据库:grunt>storeme

hadoop - 我们如何使用 Apache Pig 处理未格式化的数据?

我想使用Apachepig,但直到现在我才解析了格式化数据,例如csv或逗号分隔等。但是如果我有一些数据用';'分隔&'@&@'等,我该如何使用它?就像我使用MapReduce时一样,我用“;”分割数据在map中,然后在reduce中再次通过“@&@”。还假设我们有一个csv文件,其中第一个字段用户名由“FirstnameLastname”格式制作,raw=LOAD'log.csv'USINGPigStorage(',')AS(username:chararray,site:chararray,viwes:int);通过上面的例子我们可以得到完整的用户名,但是我怎样才能让名字和姓氏不同

hadoop - 如何处理 pig 的溢出内存

我的代码是这样的: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

exception - PIG (v0.10.0) FILTER 操作期间异常 : java. lang.Integer cannot be cast to java.lang.String

这是我的(看似微不足道的)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

hadoop - pig : How to remove '::' in the column name

我有一个像下面这样的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

hadoop - Pig Latin 中的 STRSPLIT 和 REGEXP_EXTRACT_ALL

我有以下文件: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;};这

hadoop - Clojure Hadoop - 5 行 Cascalog 相当于 300 行 PIG?

在thispresentation在幻灯片36和37-Cascalog的作者断言,给定一组姓名和年龄的数据,例如:[姓名年龄]返回所有大于平均年龄的结果的查询是300行PIG。这是一个有效的断言吗?PIG到底有几行?或者他描述的问题比我描述的更严重?(免责声明-我是Nathan的作品、Clojure和Cascalog的忠实粉丝-我只是想弄清楚一些事实)。 最佳答案 您误解了他在本次演讲中所说的话。他的意思是PIG中的“平均”实现是300行java代码,而由宏谓词功能实现的5行cascalog代码。他想强调构图的力量。PD:抱歉我的英

hadoop - 在 Pig 中,将袋子压平成一行

在我的Pig脚本(0.9.2)中,我的最终输出如下所示:final:{email:chararray,{(name:chararray,percent:double)}}对于每个电子邮件地址,我有最多3个姓名和分数。所以,输出看起来像这样:joe@smith.com{(JoeSmith,0.5),(Joseph,0.1),(Joey,0.1)}我真正想做的是将其扁平化为带制表符的分隔值(没有括号或大括号),以便像这样更容易地拉入MySQL表:joe@smith.com乔·史密斯0.5约瑟夫0.1乔伊0.1如何在Pig中完成此操作?还是我必须编写自定义UDF?

hadoop - pig 错误 : Unhandled internal error. 找到接口(interface) org.apache.hadoop.mapreduce.TaskAttemptContext,但类是预期的

我刚刚在HortonworksHDP2.1上将Pig0.12.0升级到0.13.0版本当我尝试在脚本中使用XMLLoader时出现以下错误,即使我已经注册了piggybank。脚本:A=load'EPAXMLDownload.xml'usingorg.apache.pig.piggybank.storage.XMLLoader('Document')as(x:chararray);错误:dumpA2014-08-1023:08:56,494[main]INFOorg.apache.hadoop.conf.Configuration.deprecation-io.bytes.per.ch