草庐IT

hadoop - Pig Latin 中的聚合值

在Pig中执行多级过滤后,我得到以下结果-(2343433,Argentina,2015,Sci-Fi)(2343433,France,2015,Sci-Fi)(2343433,Germany,2015,Sci-Fi)(2343433,Netherlands,2015,Sci-Fi)(2343433,Argentina,2015,Drama)(2343433,France,2015,Drama)(2343433,Germany,2015,Drama)(2343433,Netherlands,2015,Drama)(2343433,Argentina,2015,Family)(23434

hadoop - 合并和覆盖 pig 中的数据集

我有3组数据,格式都是(acctid:chararray,rule:chararray,value:charrarray)设置1个文件:123;R1;r1versionset1123123;R2;r2versionset1123123;R3;r3versionset1123124;R1;r1versionset1124124;R2;r2versionset1124124;R3;r3versionset1124设置2文件://更改R2123;R2;r2versionset2123124;R2;r2versionset2124设置3文件:123;R4;r4versionset3123124

hadoop - 执行 pig 脚本时出错?

p.pig包含以下代码salaries=load'salaries'usingPigStorage(',')As(gender,age,salary,zip);salaries=load'salaries'usingPigStorage(',')As(gender:chararray,age:int,salary:double,zip:long);salaries=load'salaries'usingPigStorage(',')as(gender:chararray,details:bag{b(age:int,salary:double,zip:long)});highsal=fi

每个子组中的 hadoop pig 百分比

我有一个文件如下名字得分约翰·阿约翰·阿约翰·阿约翰bb玛丽抄送玛丽抄送玛丽德我想按每个人的分数输出他们的分数百分比所以它看起来像这样约翰aa75约翰bb25玛丽抄送66.6玛丽dd33.3John有3个aa和1个bb,所以aa%=75和bb%=25我想在Hadooppig中做,请帮忙,谢谢-特洛伊 最佳答案 你能试试这个吗?输入:文件.datjohnaajohnaajohnaajohnbbmaryccmaryccmarydd代码:A=LOAD'file.dat'USINGPigStorage('')as(name:chararra

hadoop - 使用 Pig 计算两列之间的平均值

我有一个包含三列的文件,分别代表日期和最小/最大温度值。010120104.515.9我需要计算每一天的平均值。使用UDF似乎很容易做到这一点,但我想知道没有它是否有办法做到这一点。我设法实现了这样的事情(连接温度然后使它们变平)但对我来说它似乎太复杂了:table=LOAD'e7/temp.csv'USINGPigStorage('\t')as(day:chararray,min:float,max:float);day_group=FOREACHtableGENERATEday,FLATTEN(TOKENIZE(CONCAT(CONCAT((chararray)min,','),(

hadoop - 如何在 oozie 中将 pig 选项作为参数传递?

为了执行我的pig脚本,我需要关闭优化器。在命令行和脚本中使用以下命令可以正常工作。pig-tColumnMapKeyPrunepopulation.pig如何在oozie中传递这个选项?我试过作为参数传递。${jobTracker}${nameNode}Population.pig-tColumnMapKeyPrunepiggybankJar=${piggybankJar}datafuJar=${datafuJar}inputPath=${inputPath}outputPath=${outputPath}收到以下错误:E0701:XMLschemaerror,cvc-complex

xml - Hadoop - 使用 XPath 在 XML 节点上进行 PIG 循环

我有一个XML文件120210329我的要求是在节点上循环。我不想对它们进行硬编码,因为它可以从一个XML到另一个XML。我们有什么方法可以使用PIGXPath实现它。A=LOAD'foo.xml'usingorg.apache.pig.piggybank.storage.XMLLoader('Superfoo')as(x:chararray);B=FOREACHAGENERATEXPath(x,'Superfoo/foo/Number'),XPath(x,'Superfoo/foo/childfoo');dumpB;我尝试使用上面的代码但它只返回1行但是对于Foreach它应该返回节

使用 order by 在 Pig 中排序

您好,我是Hadoop和Pig的新手。当我尝试在pig中使用ORDERBY对我的数据进行排序时,输出并不完全按升序排列。输入:1,4,12,36,88,93,7代码:A=LOAD'INPUT'usingPigStorage();B=ORDERABY$0;`entercodehere`DUMPB;输出:1,12,36,4,7,88,93这不正确。请帮助我以正确的方式获取它。 最佳答案 您需要将列$0声明为数字,或使用强制转换。例如:A=LOAD'INPUT'usingPigStorage()AS(a0:int,[extracolumn

hadoop - 如何使用 Pig 按键和值分组

我正在使用pig,这是我要分析的文本的一部分:SciTePress:32Springer:10Springer:13Springer:14Springer:1571我想要实现的是以上升的方式对文本进行排序。例如,我希望输出看起来像这样:Springer:1608//(i.e.thesumof10+13+14+1571)SciTePress:32有没有办法使用pig来实现这一点?这是我现在得到的输出:Springer:1571SciTePress:32Springer:14Springer:13Springer:10这些是我用过的命令:WORDS=LOAD'../filename'usi

hadoop - PIG 脚本根据指定的单词将大文本文件拆分成多个部分

我正在尝试构建一个pig脚本,它接收教科书文件并将其分成章节,然后比较每一章中的单词,并仅返回出现在所有章节中的单词并计算它们。这些章节很容易被CHAPTER-X分隔。这是我目前所拥有的:lines=LOAD'../../Alice.txt'AS(line:chararray);lineswithoutspecchars=FOREACHlinesGENERATEREPLACE(line,'([^a-zA-Z\\s]+)','')asline;words=FOREACHlineswithoutspeccharsGENERATEFLATTEN(TOKENIZE(line))asword;g