我知道PigLatin是一种数据流语言。从这个意义上说,理论上应该可以在任何框架中执行PigLatin,尽管目前它应该在Hadoop环境中执行。切换PigLatin以在不同的框架上运行有多难?如果有的话,是否有任何扩展点,或者PigLatin是否与Hadoop紧密耦合? 最佳答案 PigLatin与Hadoop紧密耦合。基本上,PigLatin脚本被解释为一系列HadoopMapReduce作业,实际上没有太多方法可以换出底层数据计算层。您可以编写自定义加载器和自定义编写器来从自定义数据存储加载和存储到自定义数据存储,但最后它仍然启
我是PIG的新手,对PIG了解不多。如何在PIG中解析文本?要读取字段的值,在pig中有一个位置参数的概念,例如$0对应于第一个字段,类似地,是否有任何像位置参数这样的功能可以读取整行。什么是RADOOP,它究竟可以用在哪里? 最佳答案 您的问题表明您希望与您的数据有某种交互模式,但该数据量很大。RADOOP是R和Hadoop的组合,它应该能够为您提供一个GUI,通过一些使用Hadoop规模处理的R统计分析来运行您的大数据。与此同时,我建议您看看Google-Refine(http://code.google.com/p/googl
不知何故,如果我使用gruntshell执行pig脚本,它工作正常,但如果我尝试java模式,它会以某种方式显示“无法创建DataStorage”错误。Grunt模式命令是“pig-xmapreducetest1.pig”Java模式命令是“java-cp$PIGDIR/pig-0.9.2.jar:$HADOOP_CONF_DIRtest1.pig”我想知道我的Java命令语法有什么问题(或任何配置问题?) 最佳答案 看起来您正在尝试直接从java运行pig脚本,这可能行不通。如果您不想使用grunt,您需要将脚本嵌入到已编译的ja
我有一个过滤关键字列表(大约1000个),我需要使用这个列表过滤pig中的一个关系字段。最初,我将这些关键字声明为:%declarep1'.keyword1.';.......%declarep1000'.keyword1000.';我然后像这样进行过滤:Filtered=FITLERSRCBY(not$0matches'$p1')and(not$0matches'$p2')and......(not$0matches'$p1000');DUMP过滤;假设我的源关系在SRC中,我需要在第一个字段(即$0)上应用过滤。如果我将过滤器的数量减少到100-200,它工作正常。但随着过滤器数量
我想在pig关系上创建一个序列。比如说我与数据有关系:(John,A-1)(Jack,B-2)(Jim,C-1)我想创建序列,即在关系中再添加一列,比如一个计数器并继续增加读取的每条记录的计数。预期的输出应该是这样的:(如果200是起始序列。)(John,A-1,201)(Jack,B-2,202)(Jim,C-1,203)我该如何处理? 最佳答案 我不确定您是否真的可以在map/reduce中执行此操作,因为没有保存和同步此序列的全局位置-每个不同的map实例都在单独的服务器上运行,您无法同步它们(没有重要意义反正很痛)
我的数据中有很多空条目。由于后期处理,如果我可以将null的默认值设置为字符串“other”,那将非常有帮助。我找不到执行此操作的方法(版本0.8.1-cdh3u4)另外,我的GENERATE语句中有一些变量可能会返回null,我需要类似于SQLDECODE函数的东西来获取“其他”字符串而不是null。例子:tmp=FOREACHdumpGENERATEsite,REGEX_EXTRACT(name,'^(?:([^.]+)\\.?){1}',1)ASproject,((amiMATCHES'.*datatype.*')?REGEX_EXTRACT(name,'^(?:([^.]+)\
我有这个模式的表:(id:chararray,ts:long,data:chararray)其中ts代表时间戳,以UNIX时间存储;因为数据会更新,更新后ts会被修改,所以id不会改变。但是所有这些旧记录和新记录都将存储在hdfs中。我只是想看看最新的数据,所以我这样写pig代码:grp=GROUPtableBYid;rst=FOREACHgrp{latest=FILTERtableBYts==MAX(table.ts);GENERATElatest.idASid,latest.dataASdata;}但是Pig代码似乎不起作用,所以有人可以给我建议让这段代码起作用吗?
是否有人使用pig或hadoop流加载和解压缩压缩文件?原始csv文件使用pkzip压缩。 最佳答案 不确定这是否有帮助,因为它主要侧重于在Java中使用MapReduce,但在hadoop中有一个可用的ZipFileInputFormat。此处描述了它通过JavaAPI的使用:http://cotdp.com/2012/07/hadoop-processing-zip-files-in-mapreduce/其中的主要部分是ZipFileRecordReader,它使用JavasZipInputStream来处理每个ZipEntry
我需要数字母而不是数单词。但是我在使用ApachePig版本0.8.1-cdh3u1实现这个时遇到了问题给定以下输入:989;850;abcccc29;395;aabbcc输出应该是:989;850;a;1989;850;b;1989;850;c;429;395;a;229;395;b;229;395;c;2这是我尝试过的:A=LOAD'input'usingPigStorage(';')as(x:int,y:int,content:chararray);B=foreachAgeneratex,y,FLATTEN(STRSPLIT(content,'(?A、B和C可以转储,但“转储D”
我刚刚开始学习Hadoop和PIG(从最近两天开始!),用于我future的项目之一。为了实验,我安装了Hadoop(默认localhost:9000上的HDFS)作为伪分布式模式和PIG(map-reduce模式)。当我通过输入./bin/pig命令初始化PIG时,它启动了GRUNT命令行,我收到了pig连接到HDFS(localhost:9000)的消息,后来我可以通过pig成功访问HDFS。我希望为PIG执行一些手动配置以访问HDFS(根据各种互联网文章)。我的问题是,PIG从哪里确定了默认的HDFS配置(localhost:9000)?我检查了pig.properties但我在