草庐IT

Piglatin

全部标签

map - PigLatin 映射键值

我是第一次使用一些PigLatin代码,希望能够通过首先将键值生成为字符数组,然后使用该键来访问map中的值。例如,categoryIds是我的map,catIds=foreachfilteredContextsgenerateelementId,SUBSTRING(categoryAndConfidence,0,2)ascatId;categoryNames=foreachcatIdsgenerateelementId,categoryIds#catIdascatName;这是我收到的错误:ERROR1000:解析时出错。在第28行第64列遇到“”catId“”。期待其中之一:“无效

java - 使用 Java 中的 Pig/Piglatin 在 HBase 中排序

我在shell中创建了一个HBase表并添加了一些数据。在http://hbase.apache.org/book/dm.sort.html写的是数据集首先按行键排序,然后按列排序。所以我在HBaseShell中尝试了一些东西:hbase(main):013:0>put'mytable','key1','cf:c','val'0row(s)in0.0110secondshbase(main):011:0>put'mytable','key1','cf:d','val'0row(s)in0.0060secondshbase(main):012:0>put'mytable','key1',

regex - 如何在输入文件中找到导致错误的行 - PigLatin?

我有一个文件,每个文件有250k行。我正在尝试加载它们:apache_log=LOAD'apache_log/httpd-www02-access.log.2014-03-17-16*'USINGTextLoaderAS(line:chararray);apache_row=FOREACHapache_logGENERATEFLATTEN(REGEX_EXTRACT_ALL(line,'^".*?([\\d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3}]*)"\\[(\\d{2}\\/\\w+\\/\\d{4}:\\d{2}:\\d{2}:\\d{2}\\+\\d{4

hadoop - 使用 Piglatin 加载文本文件时跳过标题

我有一个文本文件,它的第一行包含标题。现在我想对数据做一些操作,但是在使用PigStorage加载文件时它也需要HEADER。我只想跳过标题。是否可以这样做(直接或通过UDF)?这是我用来加载数据的命令:input_file=load'/home/hadoop/smdb_tracedata.csv'USINGPigStorage(',')as(trans:chararray,carrier:chararray,aainday:chararray); 最佳答案 通常我解决这个问题的方法是对标题中我知道的内容使用FILTER。例如,考虑

hadoop - 使用 cassandra 针对 hadoop-2.2.0 运行 piglatin 脚本时出错

我正在尝试使用pig在hadoop-2.2.0中对存储在cassandra中的数据执行mapreduce。我可以在pig本地模式下运行脚本,但无法在mapreduce模式下运行。请帮助我解决它。请查找堆栈跟踪以获取更多信息。引起:java.lang.IncompatibleClassChangeError:Foundinterfaceorg.apache.hadoop.mapreduce.JobContext,butclasswasexpected错误pigstats.SimplePigStats:错误:org.apache.hadoop.yarn.exceptions.Applica

hadoop - 如何在 PigLatin 的 SUM 中计算乘法

我有一只像这样的pig描述:DESCRIBEB;B:{group:chararray,A:{name:chararray,age:int,gpa:float}}我想计算∑B.A.gpa2在pig身上但是如果我写:FOREACHB{out=SUM(A.gpa*A.gpa);}它抛出这样的异常:[main]ERRORorg.apache.pig.tools.grunt.Grunt-ERROR1039:(Name:MultiplyType:nullUid:null)incompatibletypesinMultiplyOperatorlefthandside:bag:tuple(gpa:fl

hadoop - 使用 PigLatin 删除重复项并保留最后一个元素

我正在使用PigLatin。我想从包中删除重复项,并希望保留特定键的最后一个元素。Input:User17LAUser18NYCUser19NYCUser23NYCUser24DCOutput:User19NYCUser24DC这里第一个字段是一个键。我希望在输出中保留该特定键的最后一条记录。我知道如何保留第一个元素。如下所示。但无法保留最后一个元素。inpt=load'......'......;user_grp=GROUPinptBY$0;filtered=FOREACHuser_grp{top_rec=LIMITinpt1;GENERATEFLATTEN(top_rec);};有

hadoop - PigLatin 无法从 hdfs 读取文件

我正在按照其在线手稿尝试Pig演示代码。首先,我创建了一个名为myfile.txt的测试文件。它包含两行中的六个整数:453123使用hadoopfs-copyFromLocalmyfile.txt/user/myfile.txt将文件放入hdfs然后我跑A=LOAD'/user/myfile.text';DUMPA;但是得到如下错误信息:2014-10-0814:15:54,259[main]INFOorg.apache.pig.tools.pigstats.ScriptState-Pigfeaturesusedinthescript:UNKNOWN2014-10-0814:15:5

hadoop - 使用 PigLatin (Hadoop) 加载多个文件

我有一个具有相同格式的csv文件的hdfs文件列表。我需要能够LOAD它们与pig一起。例如:/path/to/files/2013/01-01/qwe123.csv/path/to/files/2013/01-01/asd123.csv/path/to/files/2013/01-01/zxc321.csv/path/to/files/2013/01-02/ert435.csv/path/to/files/2013/01-02/fgh987.csv/path/to/files/2013/01-03/vbn764.csv它们不能被全局化,因为它们的名字是“随机”哈希,它们的目录可能包含

csv - 使用 PigLatin 将 "3"转换为 3

我读入了一个csv文件,其中包含带有数字的字段:“3”。我可以使用PigLatin将此字段从“3”转换为3吗?我需要它来使用SUM()-函数。感谢您的帮助! 最佳答案 用REPLACE删除"怎么样?例如:data=LOAD'data.txt'AS(num:CHARARRAY);numbers=FOREACHdataGENERATE(INT)REPLACE(num,'\\"','');然后你可以GROUP和SUM。一个好处是你可以将返回的字符串直接转换为数字(不需要处理包)。REGEX_EXTRACT也可以用来做同样的事情。
12