草庐IT

pig-without

全部标签

hadoop - Pig - 分组后 MAX 不工作

我正在使用Pig0.12.1和Map-R。在对其他字段的关系进行分组后,我试图找到一个字段的ma​​x。在评论中引用以下pig脚本和关系结构-r1=foreachSomeRelationgenerateflatten(group)as(c1,c2);--r1:{c1:biginteger,c2:biginteger}r2=groupr1byc1;--r2:{group:chararray,r1:{(c1:chararray,c2:biginteger)}}DUMPr2;/*output-1234|{(1234,9876)}2345|{(2345,8765)}3456|{(3456,76

csv - Pig CSVExcelStorage 双引号逗号

我正在将csv格式的文件(字段以逗号分隔并用双引号引起来)接收到HDFS中,并开发了一个pig脚本,该脚本在我使用HQL脚本将数据插入Hive之前删除了标题行并去掉了双引号。这个过程一直运行良好;但是,今天我发现其中一个表存在数据问题。该表的文件特别有一个字符串字段,可以在双引号内包含多个逗号。这会导致某些记录的数据被错误地加载到Hive中的错误列中。我无法更改源文件的格式。目前我正在使用PiggyBankCSVExcelStorage来处理csv格式,如下所示。可以修改它以产生正确的结果吗?我还有哪些其他选择?我注意到现在还有一个CSVLoader,但还没有找到任何示例来说明如何使用

hadoop - 我们可以在 pig 中通过::分隔符拆分文件列吗

我正在尝试读取一个分隔符为双冒号(::)的文件。我正在使用CSVExcelStorage,但它给出的错误如下:couldnotinstantiate'org.apache.pig.piggybank.storage.CSVExcelStorage'witharguments'[::]'那么有什么方法可以使用自定义分隔符读取文件吗? 最佳答案 您可以使用PigStorage使用您的自定义分隔符。 关于hadoop-我们可以在pig中通过::分隔符拆分文件列吗,我们在StackOverflo

hadoop - pig 为什么叫批处理

pig是批处理的吗?如果是这样,请告诉我为什么它被称为批处理。它是批处理,因为它运行mapreduce。 最佳答案 在数据处理中,我们可以单独处理每条记录(带时间戳的记录称为事件)或处理称为批处理的记录集合。Pig执行批处理,因为它不会逐条处理输入记录,实际上Pig会将输入路径中的所有可用记录作为一批加载。MapReduce是为批处理而设计的数据处理框架,mapreduce是批处理的意思,但批处理不是mapreduce。 关于hadoop-pig为什么叫批处理,我们在StackOverf

hadoop - 使用 Pig 脚本删除文件的第一行和最后一行

我想使用pig脚本删除HDFS文件的第一行和最后一行。我尝试使用Rank实现此目的并且它有效但我应该知道最后一个排名数字以删除它但我的文件是动态的它可以有更多或更少的行,对于那种情况我无法找到任何事物。请帮忙编辑:我的数据很大,所以我无法创建模式,也无法将它们分组以使用MIN()如何实现这一点? 最佳答案 一旦您获得可用的排名,您就可以通过MIN和MAXeval函数获得要排除的第一个和最后一个排名(即文件的第一行和最后一行)。这样您就无需对排名过滤器进行硬编码。EvalfunctionMAXEvalfunctionMIN注意:这是针

hadoop - 在 pig 中创建一个巨大的过滤器

我有这个代码。large=load'asuperlargefile'CC=FILTERlargeBY$19=='abcOR$20=='abc'OR$19=='def'or$20=='def'....;OR条件的数量可以达到100甚至数千。有更好的方法吗? 最佳答案 是的,将这些条件放在另一个文件中。将其加载到关系中并将两个关系连接到列上。如果必须在多个列上进行过滤,则创建与条件一样多的过滤文件。下面是2的示例栏目large=load'asuperlargefile'filter1=load'filewithvaluesneededt

java - 对 pig 中每 n 个行值求和

我有这样的数据。1:23:0.202:34:0.503:67:0.904:87:0.105:23:0.12我正在尝试像这样对每2行的最后一列值求和。0.20+0.50=0.700.90+0.10=1.0然后像这样打印1:23:0.20:0.702:34:0.50:0.703:67:0.90:1.04:87:0.10:1.05:23:0.12这是我的pig脚本data=LOAD'/home/user/Documents/test/test.txt'usingPigStorage(':')AS(tag:int,rssi:chararray,weightage:chararray,seqnu

hadoop - PIG 右移问题

我有一个CSV文件,其中包含以下方式的数据:data_id,data_text,data_author1,"heresometext...",anurag2,"Hi,iamapsc...",apsc3,"iamlivingin"NYC"",anotheruser我正在执行以下步骤来加载正确的数据方法1.temp=LOAD'filepath'USINGPigStorage(',');当我转储温度时,数据右移,因为第二条记录中有一个额外的逗号。方法二:使用新行作为分隔符加载数据temp=LOAD'filepath'USINGPigStorage('\n');它在1个包中给我1个记录。我再次

java - Apache Pig,程序运行问题

REGISTER/home/hadoop/pigg/trunk/contrib/piggybank/java/piggybank.jar;--UsethePigStoragefunctiontoloadtheexcitelogfileintotherawbagasanarrayofrecords.--Input:(user,time,query)A=LOAD'hadoop-test-data.csv'USINGPigStorage(',')AS(user:chararray,site:chararray,view:int,click:int);B=FOREACHAGENERATEorg

hadoop - 标量只能与 PIG 中的投影一起使用

标量只能与投影一起使用我在使用foreach时遇到此错误。我该如何解决此错误?我如何在foreach中使用LIMIT?请建议一些提前致谢..编辑(Tichdroma):从评论中复制代码A=LOAD'part-r-00000';G=GroupAby($0,$2);Y=foreachGgenerateFLATTEN(group),FLATTEN($1);sorted=orderYby$0ASC,$1DESC;X=foreachY{lim=LIMITsorted3;generatelim;};Dumpx; 最佳答案 LIMIT在FOREA