草庐IT

Pig-Latin

全部标签

hadoop - 在 PIG 中声明变量和模式

如何在PIG中声明一个变量?假设我想要一个值为10的整数,如何在脚本中声明它?以及如何重用模式? 最佳答案 我认为您可以使用“声明”命令。它用于描述一个参数并在PIG脚本中使用。%declareDESC'Database'A=load'data'as(name,desc);B=FILTERAbydesceq'$DESC';.....您可以在此处了解更多信息。PigParameter 关于hadoop-在PIG中声明变量和模式,我们在StackOverflow上找到一个类似的问题:

hadoop - 如何将 tarball 加载到 pig

我有一个压缩包(access.logs.tar.gz)中的日志文件加载到我的hadoop集群中。我想知道他们是否可以直接将它加载到pig身上而不用解开它? 最佳答案 @ChrisWhite的回答在技术上是正确的,您应该接受他的回答而不是我的(至少是IMO)。您需要使用Hadoop摆脱tar.gz文件。Gzip文件不可拆分,因此如果您的gzip文件很大,您将在映射器中看到热点。例如,如果您有一个100gb的.tar.gz文件,您将无法拆分计算。另一方面,假设它们很小。在这种情况下,Pig会很好地将它们收集在一起,拆分问题就会消失。这有

hadoop - 在单个实例中将 pig 输出存储到 Hive 表中

我想将pig输出插入到Hive表中(Hive中的表已经使用确切的模式创建)。只需要将输出值插入到表中。我不想使用通常的方法,其中我首先存储到一个文件中,然后从Hive中读取该文件,然后插入到表中。我需要减少已完成的额外跃点。这可能吗?如果可以,请告诉我如何做到这一点?谢谢 最佳答案 好的。在HDFS目录中的某处创建一个具有架构布局的外部配置单元表。让我们说createexternaltableemp_records(idint,nameString,cityString)rowformatteddelimitedfieldsterm

hadoop - HDFS、HBase、Pig、Hive 和 Azkaban 之间的关系?

我对Apache有点陌生Hadoop.我看过this和this关于Hadoop、HBase、Pig、Hive和HDFS的问题。他们都描述了上述技术之间的比较。但是,我已经看到,通常一个Hadoop环境包含所有这些组件(HDFS、HBase、Pig、Hive、阿兹卡类)。有人能以架构工作流的方式解释这些组件/技术与它们在Hadoop环境中的职责之间的关系吗?最好有一个例子? 最佳答案 总体概述:HDFS是Hadoop的分布式文件系统。直观上,您可以将其视为跨越许多服务器的文件系统。HBASE是一个面向列的数据存储。它以Google的B

hadoop - 如何为 PIG 或 HIVE 中的行添加行号?

我在使用ApachePig添加行号时遇到问题。问题是我有一个STR_ID列,我想为STR_ID中的数据添加一个ROW_NUM列,这是STR_ID的行号。例如,这里是输入:STR_ID------------3D64B18BC842BAECEFA8EFB6346B13E4E2406D8A9D0249B49FD024AA52BA如何获得如下输出:STR_ID|ROW_NUM----------------------------3D64B18BC842|1BAECEFA8EFB6|2346B13E4E240|36D8A9D0249B4|49FD024AA52BA|5可以接受使用Pig或Hi

hadoop - 在 Pig 中将一个元组拆分为多个元组

我喜欢从一个元组生成多个元组。我的意思是:我有包含以下数据的文件。>>catdataID|ColumnName1:Value1|ColumnName2:Value2所以我通过下面的命令加载它grunt>>A=load'$data'usingPigStorage('|');grunt>>dumpA;(ID,ColumnName1:Value1,ColumnName2:Value2)现在我想把这个元组拆分成两个元组。(ID,ColumnName1,Value1)(ID,ColumnName2,Value2)我可以将UDF与foreach一起使用并生成吗?像下面这样的东西?grunt>>fo

hadoop - 在 PIG (Hadoop) 中将输入拆分为子字符串

假设我在Pig中有以下输入:some我想把它转换成:ssosomsome我(还)没有找到一种方法来迭代Piglatin中的chararray。我找到了TOKENIZE函数,但它在单词边界上split。那么“拉丁pig”可以做到这一点还是需要Java类才能做到这一点? 最佳答案 尼尔斯,TOKENIZE采用定界符参数,因此您可以将其拆分为每个字母;但是我想不出一种方法让它产生重叠token。不过,在Pig中编写UDF非常简单。您只需实现一个名为EvalFunc的简单接口(interface)(此处有详细信息:http://wiki.a

hadoop - PIG - 标量在输出中有多行

我有以下电影数据库的数据集:评分:UserID、MovieID、评分电影:电影ID、类型用户:UserID、性别、年龄我写了一个PIG脚本来获取年龄段(20-30)中评分最高的电影的女性用户。以下是我目前得到的代码:users_input=load'/users.dat'USINGPigStorage('\u003B')as(UserID:long,gender:chararray,age:int,occupation:int,zip:long);movies_input=load'/movies.dat'USINGPigStorage('\u003B')as(MovieID:long

hadoop - 您如何处理 Apache Pig 中的空输入文件或丢失的输入文件?

我们的工作流程使用AWSelasticmapreduce集群来运行一系列Pig作业,以将大量数据处理成聚合报告。不幸的是,输入数据可能不一致,并可能导致没有输入文件或0字节文件被提供给管道,甚至由管道的某些阶段生成。在LOAD语句期间,如果Pig找不到任何输入文件或任何输入文件为0字节,它就会失败。有什么好的方法可以解决这个问题(希望在Pig配置或脚本或Hadoop集群配置中,无需编写自定义加载器...)?(因为我们使用的是AWSelasticmapreduce,所以我们只能使用Pig0.6.0和Hadoop0.20。) 最佳答案

hadoop - Pig 0.11.1 - 对时间范围内的组进行计数

我有一个数据集A,它有时间戳、访问者、URL:(2012-07-21T14:00:00.000Z,joe,hxxp:///www.aaa.com)(2012-07-21T14:01:00.000Z,mary,hxxp://www.bbb.com)(2012-07-21T14:02:00.000Z,joe,hxxp:///www.aaa.com)我想在一个时间窗口(例如10分钟)内测量每个用户每个URL的访问次数,但作为一个按分钟递增的滚动窗口。输出将是:(2012-07-21T14:00to2012-07-21T14:10,joe,hxxp://www.aaa.com,2)(2012-