草庐IT

pig4cloud

全部标签

hadoop - 在 Apache Pig 中合并两个数据集

我有两个hbase输入别名:X:(a1,b2)(a2,b2)...(an,bn)Y:(c1)(c2)...(cn)现在我想“加入”两个别名:X的第一行和Y的第一行。最终结果应该是:RESULT:(a1,b1,c1)(a2,b2,c2)...(an,bn,cn)我该怎么做? 最佳答案 Pig的一个基本原则是顺序无关紧要。更一般地说,关系是元组的集合,而不是元组的列表。如果顺序对您的数据很重要,那么它应该反射(reflect)在数据本身中,而不是数据恰好存储的方式。不过,如果您可以保证在加载数据时Pig会按照您希望的顺序处理数据,则确实

java - 在 yarn "org.apache.hadoop.ipc.Client - Retrying connect to server: tasktracker3/10.201.2.169:50000"上运行时在 apache Pig 中出现错误

我正在运行ApachePig0.11.2和Hadoop2.2.0。我在Pig中运行的大多数简单作业都运行良好。但是,每当我尝试在大型数据集上使用GROUPBY或LIMIT运算符时,我都会收到以下连接错误:2013-12-1811:21:28,400[main]INFOorg.apache.hadoop.ipc.Client-Retryingconnecttoserver:tasktracker2/10.201.2.145:54957.Alreadytried0time(s);retrypolicyisRetryUpToMaximumCountWithFixedSleep(maxRetr

hadoop - pig 脚本中的代理键

我需要将现有的ETL流转换为Pig脚本,我试图将我的维度保存在hdfs中,这样我在加载事实表时就无需查看数据库。这里面临问题,无法为新维度记录创建代理键。是否可以在pig中创建代理键?如果是,请告诉我如何创建代理键。谢谢塞尔瓦姆 最佳答案 我使用pig创建代理键的主要机制是使用DataFu哈希方法。它返回一个MD5或SHA值。只要用于派生散列的源数据是唯一的,您的散列也应该是唯一的。在我从非唯一来源生成代理键的情况下,我通常使用RANK创建数据排名,然后将该字段用作散列的一部分。示例1:从2个串联字段创建的简单哈希。请注意结果中存在

hadoop - 用 Pig 拆分字符串

我有一个以下格式的字符串:2011年7月9日星期六05:38:24GMT我会得到这样的输出:2011年7月9日05:38:24谢谢。[编辑]我尝试了很多解决方案,我有错误。我会重新解释这个问题。我有一个XML文件,其中有一个节点:2011年7月5日星期二10:10:30GMT我想从中提取两个单独的字符串,如上所示。我试过这段代码:register/usr/lib/pig/piggybank.jar;items=LOAD'depeche/2011_7_10_12_30_rss.txt'USINGorg.apache.pig.piggybank.storage.XMLLoader('ite

hadoop - 无法从 loadFunc org.apache.pig.builtin.AvroStorage 获取架构

我在运行pig脚本时遇到以下错误REGISTER/opt/cloudera/parcels/CDH/lib/pig/lib/avro.jarREGISTER/opt/cloudera/parcels/CDH/lib/pig/lib/json-simple-1.1.jarREGISTER/opt/cloudera/parcels/CDH/lib/pig/lib/jackson-core-asl-1.8.8.jarREGISTER/opt/cloudera/parcels/CDH/lib/pig/lib/jackson-mapper-asl-1.8.8.jarREGISTER/opt/cl

hadoop - 如何使用 pig 从 hdfs 加载推特数据?

我只是使用flume流式传输一些推特数据并将其集群到HDFS现在我尝试将它加载到pig中进行分析。由于默认的JsonLoader函数无法加载数据所以我在谷歌中搜索一些可以加载这种类型的库数据。我找到了这个link并按照那里的说明进行操作。这是结果REGISTER'/home/hduser/Downloads/json-simple-1.1.1.jar';2016-02-2220:54:46,539[main]INFOorg.apache.hadoop.conf.Configuration.deprecation-fs.default.nameisdeprecated.Instead,u

hadoop - GC 开销限制超出 Pig 中杀死的容器

我正在使用YARN在hadoop2集群的开发环境中执行13个表映射连接。所有表作为LEFTOUTER与主表连接。共有15个连接连接。由于大多数小表都小于200-300MB,所以我使用USING'replicated'来执行脚本代码。它执行得相当快,但卡在95-99%以上。当我检查应用程序url时,2reducers失败抛出错误为“GC开销限制超出了由ApplicationMaster杀死的容器。根据请求杀死了容器。退出代码为143容器以非零退出代码143退出。OtherreducerfailedwitherrorTimedoutafter300secsContainerkilledby

hadoop - Union 和 Join 在 apache pig 中的结合

我在hdfs中有两个文件包含如下数据,File1:id,name,age1,x1,152,x2,143,x3,16文件2:id,name,grades1,x1,A2,x2,B4,y1,A5,y2,C我想产生以下输出:id,name,age,grades1,x1,15,A2,x2,14,B3,x3,16,4,y1,,A5,y2,,C我正在使用Apachepig执行操作,是否可以在pig中获得上述输出。这是一种Union和Join两者。 最佳答案 因为您可以在pig中进行联合和加入,所以这当然是可能的。无需深入研究确切的语法,我可以告诉

hadoop - 传递 JVM 选项以指向 Oozie Workflow 中 Pig Action 中的 log4j.properties 文件

在我的Oozie工作流程中,有一个pigAction。运行时,它正在CDH中寻找log4j.properties文件,因为我没有在我的jars中提供该文件。现在,我有了log4j.properties文件,我只需要将它作为Pig操作中的JVM选项传递即可。有什么办法吗? 最佳答案 无法将自定义log4j属性文件传递给Oozie工作流中的Pig操作。PigMain.java文件不允许将以下参数作为参数传递。static{DISALLOWED_PIG_OPTIONS.add("-4");DISALLOWED_PIG_OPTIONS.ad

hadoop - 如何基于 Pig/Hive 中的关键子集进行聚合?

我有以下数据集,其中emp_id、org_id和res_id是关键列Inputdatais-emp_id|org_id|res_id|emp_sal123|345|678|10000123||678|20000123|345||30000|345|678|10000103|305|608|40000103|||50000如果剩余记录是完整键的子集,我需要聚合emp_sal。例如"123|345|678|"在输入数据集中还有3个子集。Expectedoutputis-emp_id|org_id|res_id|emp_sal123|345|678|70000103|305|608|9000