草庐IT

pig4cloud

全部标签

java - pig : UDF not returning expected resultset

这是我正在处理的示例数据:PeterWilkerson27MJamesOwen26MMattWo30MKennyChen28M我创建了一个简单的UDF来像这样过滤年龄:publicclassIsApplicableextendsFilterFunc{@OverridepublicBooleanexec(Tupletuple)throwsIOException{if(tuple==null||tuple.size()>0){returnfalse;}try{Objectobject=tuple.get(0);if(object==null){returnfalse;}intage=(In

hadoop - 我如何在 PIG 中连接一个带有硬编码值的变量

我如何在PIG中连接一个变量和一些硬编码值A=LOAD'data'as(f1:chararray,f2:chararray,f3:chararray);X=FOREACHAGENERATECONCAT("BIG",f3);预期输出:(Apache,开放,大源)(hadoop,map,BIGreduce)(pig,pig,BIGlatin) 最佳答案 Pig不支持双引号,因此您需要将硬编码值从双引号更改为单引号。X=FOREACHAGENERATEf1,f2,CONCAT('BIG',f3);更新:您可以使用REPLACE函数从输入中

hadoop - pig : how to separate data by positions in a single line

通常,如果我们在一行中有任何分隔符,我们会这样做。load"pigtest.txt"usingPigStorage(',')as(year:int,temp:float);下面是单行数据的示例。0029029070999991901010106004+64333+023450FM12+000599999V0202701N015919999999N0000001N9-00781+99999102001ADDGF108991999999999999999999我需要提取年份1901(16thpositionto4positions)吨emperature(89thpositionto4po

hadoop - 使用 PIG 从 CSV 文件中删除双引号 (")

我正在尝试从文件中删除双引号(")。某些字段包含“Newyork,NY”等数据。请告诉我该怎么做?我已尝试从CSV中删除(")。但它是没有发生。逐步代码如下:我是用pig-xlocal打开pig第一步:test4=LOAD'/home/hduser/Desktop/flight_data.csv'usingPigStorage(',')AS(YEAR:chararray,QUARTER:chararray,MONTH:chararray,DAY_OF_MONTH:chararray,DAY_OF_WEEK:chararray,FL_DATE:chararray,UNIQUE_CARRI

hadoop - 如何在 pig latin 中分组后进行排序和限制而不会使工作崩溃

很多时候我们有兴趣获取一组的顶部或底部(在orderby之后),这些集合在排序之前已经按某些键分组。A=FOREACHdataGENERATEx,y,z;B=DISTINCTA;C=GROUPBBY(x,y)PARALLEL11;D=FOREACHC{ORDERD=ORDERBBYzDESC;FIRST_REC=LIMITORDERD1;GENERATEFLATTEN(FIRST_REC)AS(x,y,z);};STOREDINTO'xyz'USINGPigStorage();上面的foreach生成需要“永远”完成,并最终在12小时左右后被杀死。负责这件事的mapreduce作业生成

hadoop - Pig 过滤器因意外数据而失败

我正在运行Cassandra,其中有大约2万条记录可供使用。我正尝试在pig中对此数据运行过滤器,但收到以下消息:2015-07-2313:02:23,559[Thread-4]WARNorg.apache.hadoop.mapred.LocalJobRunner-job_local_0001java.lang.RuntimeException:com.datastax.driver.core.exceptions.InvalidQueryException:Expected8or0bytelong(1)atorg.apache.pig.backend.hadoop.execution

arrays - 使用 Apache Pig 从文件中读取字符串数组

我在外部存储一个Hive表,这是一个非常简单的数据结构。该表在Hive中创建为(userstring,namesarray)ROWFORMATDELIMITEDFIELDSTERMINATEDBY'\t'COLLECTIONITEMSTERMINATEDBY'\001'STOREDASTEXTFILE(我也尝试过其他分隔符)。在Pig中,我似乎想不出使用包或元组来加载简单数组的正确方法!这是我在没有运气的情况下尝试过的方法:users=load''usingPigStorage()AS(user:chararray,names:bag{tuple(name:chararray)})us

java - 在 PIG 中获取名称值 JSON

大家好,我刚开始做pig,我想知道JsonLoader是否能够解析json中的所有值。例如:{"food":"Tacos","person":"Alice","amount":3}我需要将“食物”作为关系存储在chararray和“Tacos”中,这是“食物”对另一个关系的值(value)。在阅读了许多教程和文档之后,我还没有找到这样做的内置方法。这是否意味着唯一的解决方案是通过UDF?非常感谢! 最佳答案 我找到了使用来自twitter的外部jar的答案。register'hdfs:/udf/elephant-bird-pig-4

hadoop - 想要使用 pig 聚合两个已解析 xml 文件的文件的值

第一个文件包含以下内容cl_iddateTMc_idc_val102012015-4-1501:00:00567070650102012015-4-1501:00:00567070661102012015-4-1501:00:0056707067200同样有多个cl_id,对于每个cl_id,c_id不同,c_value也不同。同样在第二个文件中cl_iddttmc_idc_val102012015-4-1501:00:0056707065300102012015-4-1501:00:005670706660102012015-4-1501:00:005670706720文件一和文件二

hadoop - 如何在 Pig 中使用 MapReduce Native 传递命令行参数

我正在使用NaativeMapreduce(https://wiki.apache.org/pig/NativeMapReduce)从ApachePig调用Mapreduce作业我的问题是如何像在命令行中那样传递参数。例如:如果我有一个Mapreduce类,我从命令行调用它的驱动程序并向它传递一些它在其作业配置对象中设置的参数,例如javaMRDriverargument1_value在MRDriver中publicstaticvoidmain(String[]args){JobConfjobConf=...jobconf.set("argument1",arg[0]);.....}当