Apache pig BagOfBagsConcat是必要的UDF吗?还是形式不好?

我设法给自己弄了一袋袋子,里面的每个袋子都包含相同形式的元组:{({(奶牛,30),(猴子,20)}),({}),({(鸭子,3)} 因此,我创建了一个名为BagOfBagsConcat的UDF,该UDF期望将这种情况作为参数:一个包含同质行李并返回作为其输出的单个行李: {(牛,30),(猴,20),(鸭,3)} 我环顾四周,在达塔福只发现了巴康卡特。这是不是意味着这个功能不是真的必要,一袋袋袋袋只是一种自然的畸形,我必须重新审视我的猪脚本 谢谢,如果需要指定创建此脚本的pig脚本,请告诉我,

Apache pig 通过与其他文件比较,过滤清管器中的tsv文件

我有一个巨大的文件,每行有两列,用tab分隔 我有另一个文件,它有一个值列表,每行一个 现在我想过滤第一个文件,这样我就可以得到第一列出现在第二个文件中的所有行 如何在Pig中执行此操作?您可以使用内部联接: A = LOAD 'file1' USING PigStorage('\t') AS (f1:int, f2:int); B = LOAD 'file2' USING PigStorage(',') AS (f3:int); C = JOIN A BY f1, B BY f3; DUMP

Apache pig 猪的参数代换

我在使用/home/vm4learning/Desktop/students-db.txt的参数替换时遇到语法错误。 那么,这里使用的正确命令和正确语法是什么呢 谢谢您需要为清管器加载脚本指定HDFS路径 首先需要在HDFS中复制输入文件,然后可以在pig脚本中指定HDFS路径 hadoop fs -put /home/vm4learning/Desktop/students-db.txt /user/input 您可以使用hadoop put命令将输入文件复制到HDFS中,方法是: stud

Apache pig 在清管器中访问记录中的袋值

我在pig中有如下详细记录 (e5a22039edba467cb738f3794de577b6,{(Fortnite),(OT4),(Main),(新用户),(手册)},bbeead3d3ed42c1a7e65838fabb16e3) 我想访问{(Fortnite),(OT4),(Main),(newuser),(Manual)}中的数据以及记录中的其他值。请建议我怎么做 谢谢您没有给我们提供太多信息,但我想您可以使用$X访问您的字段。“{(Fortnite),(OT4),(Main),(New

Apache pig 无法分析Pig中的日期

我无法分析pig中的日期。 日期格式为周一、10/11/10 01:02下午 我使用以下命令加载数据: data=使用PigStorage(“;”)加载“活动数据.csv” 接下来,我使用以下命令将日期列生成为chararray:- date_data = foreach data generate (chararray) $272 as dates; 当我转储date\u数据时,我在输出中得到以下信息: 周一 如何获取完整的日期?将提供的日期转换为datetime对象不需要272美元。您可以

Apache pig 清洁猪工作区中的Hello world

我想知道是否有可能做经典的“你好,世界!”在阿帕奇猪 Pig在某种程度上与SQL和hive相关,人们可以简单地执行以下操作: SELECT 'Hello Wold'; 然而,我一直无法在Pig中找到“从无到有”的方法 请注意,如果您能够加载一行或多行数据,当然可以执行以下操作: 装载 限制1 生成Hello World 然而,这不是我想要的。我希望找到一种方法,在没有任何可用数据的情况下创建hello world示例 如果你想知道:我问这个问题主要是出于好奇,但也可以通过在代码中做一些事情(

Apache pig 在Pig中存储值

我有一个包含变量描述、总金额、年份和类型的文件 如果年份是2000年,并且是某种类型,我希望存储这些字段以供以后使用 如果年份大于2000年,我想找出增长百分比 从2000年的价值。我看过这个复制品,但不知道它是如何使用的 mysales = load 'hdfs:/user/derezone_yahoo/retailsales.txt' using PigStorage(' ') AS (saledesc:chararray,totsales:int,salesyear:chararra

Apache pig 将行李作为输入传送到UDF

我想把一个包的元组传递给UDF 我有这个数据结构,所有元素都是两个包(x和y)的元组(arg): 然后,我写了一篇UDF: public class MyUDF extends EvalFunc<String> { public String exec(Tuple input) throws IOException { if(input == null || input.size() == 0) return "empty";

Apache pig 如何在pig中存储和使用变量

我有一个元组存储在: {group: chararray,word_count: long} 所以,我求所有word_count变量的和,并将其存储在变量T中: T: {long} 现在,我有一个变量X,看起来像: (word1,12,word1,1) (word2,22,word2,4) (word3,32,word3,14) 我需要对存储在T中的值进行1,4和14的数学运算, 但我的for-each不认识t result = FOREACH X GENERATE $3*T; 它失败了

Apache pig 扩展Pig和函数

如果袋子为空,则内置的Pig SUM eval函数返回null。如何覆盖它尽可能简单地返回0而不是null public class CustomSum extends SUM{ // Which methods to override. } 或者是否有任何方法可以在脚本中检查SUM是否返回null,然后将其设为0 例如:A=FOREACH COGROUP外部组作为url,1-$d+$d*SUMa.values作为totalValue 我正在做一个外协组。所以组中有一些记录没有值,

Apache pig apachepig,程序问题

我不熟悉pig编程,我只是尝试了一个程序,输入如下 ****Input:**gedit bomb** sasi:where is the bomb pras:bomb is with me sasi:what is the bomb time pras:it is set to nine. ****output:**** sasi:2 pras:1 这是每个名字(sasi、pras)出现“炸弹”一词的次数 像这样试试 A = load 'bomb' USING PigStorage(':

Apache pig 如何按索引和索引进行分组+;1只猪

我有这样的数据输入: (index,x,y) (1,0.0,0.0) (2,-0.1,-0.1) (3,1.0,-2.2) ... 如何按[index]和[index+1]进行分组 {(1, 0.0, 0.0), (2, -0.1, -0.1)} {(2, -0.1, -0.1), (3, 1.0, -2.2)} ... 请帮我解决这个问题。谢谢。您可以使用以下查询(注释中的解释) 我用于测试的文件包含以下内容: 1,0.0,0.0 2,-0.1,-0.1 3,1.0,-2.2 请注意,括

Apache pig 无法将清管器中的字符数组转换为十进制

嗨,我是猪编程新手。我有一个csv文件和一个制表符作为分隔符。在我的价格栏中,我有拉克和克罗尔。它看起来像是40.85 Lacs,36.73 Lacs,2.01 cr。我想像这样转换成十进制 40.85 Lacs - 40,85,000 36.73 Lacs - 36,73,000 2.01 cr - 2,01,00000 我尝试了以下代码: a = LOAD '/user/user1/input/city/cityname.CSV' using PigStorage('|') as (Sou

Apache pig PLSQL到清管器的转换

是我的plsql查询结构。我需要转换它 我已经成功地转换了内部案例查询,并执行了它 plsql案例条件的内部查询将变为PIG形式 Select x,y,.., CASE( when A.A_code = 'G' THEN COUNT(DISTINCT CASE WHEN T.trxn = 'P' THEN

Apache pig 使用pig对多个字段进行计数和求和

我在数据集中有四个包含int类型数据和null的字段,因此我需要计算包含数据的字段数,即假设第一列和第三列的值为null,第二列和第四列的值为整数值,则输出为2。 第二件事,我也需要这些字段的和,就像上面的例子,输出是2 输入 null null null null 1 3 5 null null null 8 5 输出: 0 null 3 9 2 13 下面是一个如何做到这一点的示例 A = LOAD 'data.csv' USING Pig

Apache pig Apache Pig将行转换为以字符分隔的单个列

我需要将值列转换为按城市分组并以“|”(pipe)字符分隔的单行 数据=使用PigStorage(',')作为加载“/tmp/test.dat”( 城市:查拉雷, 值:chararray ) 输入:(城市/价值) 伊斯坦布尔,1 伊斯坦布尔,2 伊斯坦布尔,3 2007年8月8日,纽约 9月9日,纽约 输出: 伊斯坦布尔,1 | 2 | 3 纽约,8 | 9首先在城市上进行分组,然后使用BagToString()将每组的值转换为所需的字符串表示形式。类似(未经测试!) 首先在CITY上执行gro

Apache pig 如何在PIG关系中建立动态场

我与3个字段有猪关系,如下所示: A = Load 'record.txt' as (name chararray,ID int,subject chararray,flag boolean);<br> DUMP A; ( RAM,222,JAVA,true) ( RAM,111,DotNet,false) ( RAM,444,HTML,false) ( SAM,777,DotNet,true) ( SAM,333,JAVA,false) 使用下面的脚本,但没有给出确切的结果 A

Apache pig 扁平化或子串与连接清管器混乱

我有两个数据集,data1和data2 data2包含以下数据 a1:u:11#eve:f:6 a1:u:12#eve:f:6 a1:u2:13#eve:f:3 a1:u1:12#eve:s:6 a1:u1:11#eve:f:6 这里的:和#都是分隔符。我最终生成data2,如下所示: LOAD '$data2' USING PigStorage(':') AS (ad: chararray, a_id: chararray

Apache pig 我可以在pig中同时(或关闭)使用multistorage和CSVExcelStorage吗?

我正在寻找一种将关系存储到CSV格式的拆分文件夹中的方法。 我正在用炮弹发射猪 我查看了stack,但没有发现任何关于这个案子的信息 我正在使用piggybank 0.14和最后一个multistorage的java来使用多字段选择 如果我使用CSVExcelStorage来存储关系,我可以在shell中剪切输出文件,但是我认为这个操作会使我丢失CSV格式 如果我使用多存储来存储关系,我将无法以CSV格式格式化输出文件 那么,是否可以将CSVExcelStorage从一个关系应用到一个关系 你还

Apache pig 阿帕奇猪的总数

在下面的示例中,我如何显示相同分类和类型的大小总和 ((分类,机密),(类型,文件,办公室),{((大小,557856))) ((分类,秘密),(类型,Blog.ExternalPost),{((大小,4478993))}) ((分类,秘密),(类型,Social.Post.Twitter),{((大小,1902045))} ((分类,秘密),(类型,Social.Post.Facebook),{((大小,2085060)),((大小,557856)),((大小,1555956))} ((分类,

Apache pig PigLatin重命名元组

我正在加载数据并创建元组: data = LOAD 'file' USING PigStorage(';') AS (f1: chararray, f2: chararray); t = FOREACH data GENERATE TOTUPLE(f1, f1) as t; 稍后我想重命名元组,所以我有 t: (f3: chararray, f4: chararray) 有可能吗?您可以为复杂数据类型提供模式,就像为基本数据类型提供模式一样: grunt> data = LOAD 'f

Apache pig Pig和Jython-Can';t寄存器自定义项

我正在尝试用Python UDF编写它;我用的是数据税套餐。当我尝试编写一个简单的自定义项时,例如: @outputSchema("word:chararray") def helloworld(): return 'Hello, World' 然后在grunt shell中注册它: REGISTER 'pig.py' USING org.apache.pig.scripting.jython.JythonScriptEngine as myfuncs; 我得到以下错误: 错误2

Apache pig 在Pig中使用COV函数

由于某些原因,我无法掌握此函数的正确语法 我有一个名为testing.txt的文件: 1 2 3 4 5 6 7 8 我有一个猪的剧本: testing = load '/testing.txt' using PigStorage(',') as (var1:double); t = foreach testing generate var1, var1 as var2; grp = group t all; res

Apache pig 从JsonLoader Apache Pig获取不正确的值

最近我一直在与ApachePig合作。我想根据yelp中的数据集提取几个列。请往下看我用过的代码。。我试着在Hortonworks平台和我的机器(Ubuntu)上运行它们。我得到对应于不同列的结果作为输出。请指出我犯错误的地方 查询: grunt> business = load 'yelp_academic_dataset_business.json' using JsonLoader('name:chararray, state:chararray'); gru

Apache pig PLSQL到PIGLATIN

是我的plsql脚本 我正在使用case条件 select (WHEN tt.trxn = 'P' AND ip.crdate = dtd.podate THEN dtd.A || dtdB || dtd.C ELSE NULL END) XXXX,.. 它抛出异常 如何在PIG拉丁语的CASE语句中给出或检查多个条件(,对于tt.trxn='p'和ip.crdate=dtd.p

Apache pig 在PIG脚本中连接不同的记录

我正在尝试用PIG编写一个脚本,我需要做的是获取一个数据集,其中包含用户id、日期、国家代码和其他属性。。。 我想要的结果是按用户id和日期分组,对于每个这样的组-将国家代码连接到同一字段中 例如: user_id | date | country_code 1 2017-01-01 US 1 2017-01-01 UK 1 2017-01-02 FR 2 2017-01-02 RU 2

Apache pig 如何从pig中的单个元组创建多个元组?

我在pig中有类似“5060-5070”的列,我想编写一个udf来返回元组,如下所示: col1和col2在所有元组中都是相同的 col1,col25060 col1,col25061 col1,col25062 或者如果有任何替代方法(而不是使用udf)从单个元组创建多个元组。您应该创建一个返回数据包的udf。数据包可以包含任意数量的元组。然后使用“展平”扩展此数据包。使用BagFactory创建数据包,使用TupleFactory创建一个元组并将其添加到其中。UDF是您唯一的选择,您能帮我写

Apache pig pig脚本循环,计算平均值

我有数据,将运行在猪使用aws电子病历看起来像。这些列称为型号、年份、销售单位、总客户 chevy 1900 1000 49 chevy 1901 73 92 chevy 1902 45 65 chevy 1903 300 75 ford 1900 35 12 ford 1901 777 32 ford 1902 932

Apache pig 错误[main]2997:无法从后端重新创建异常错误:org.apache.pig.backend.executionengine.ExecutionException

我用pig创建了下面的脚本。我对猪和猪拉丁语很陌生。我还在学习如何有效地使用PIG脚本 执行脚本时,我出现以下错误: 错误[main]org.apache.pig.tools.grunt.grunt-错误2997:无法从后端重新创建异常错误:org.apache.pig.backend.executionengine.exeception 有人能解释一下原因吗?我怎样才能改正呢。在csv文件中,我有除rate列以外的所有char列,rate列有整数值 *divs = LOAD 'output\f

Apache pig 使用Pig读取以空格分隔的文件

我正在尝试读取一个日志文件,其内容如下所示: 2013-03-28812:19:03.639648-05:00主机1 rpcbind:rpcbind终止于 信号。使用“rpcbind-w”重新启动 2013-03-28812:20:33.158823-05:00主机2 rpcbind:rpcbind终止于 信号。使用“rpcbind-w”重新启动 我尝试过使用存储空间分隔符,如下所示: cmessages=使用PigStorage(“”)作为(日期:chararray, 主机:chararray

Apache pig 我的wordcount程序到底出了什么问题?(猪)

我对pig非常不熟悉,我想尝试对不带标点符号的单词进行排序计数。我可以很好地转储D,当我尝试转储E并得到这个错误时,问题就出现了 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1066: Unable to open iterator for alias E A = load './SherlockHolmes.txt' using PigStorage(' '); B = foreach A generate FLATTEN(RE

Apache pig 一个';外袋';和';内袋';用拉丁语?

手册/文档广泛地使用了“内袋”和“外袋”的语言(比如:),但我还不能清楚地指出区分这些术语的确切定义 e、 g.所有内在相互关联的: 如果我给你一个袋子“foo”,你需要知道什么才能将foo标记为“内袋”还是“外袋” “任何包”不是最外层的包,那么是“内层包”吗 内部和外部的标签总是排他性的吗 在拉丁语中,所有的“包”都是“关系”,还是只有“最外层的包”是关系?(与内袋无关) 创建一个可讨论的示例: grunt> dump A; (1,2,3) (4,2,1) (8,3,4

Apache pig 猪的“::”和“.”之间有什么区别?

清管器中的:和之间有什么区别 我什么时候使用一个和另一个 例如,我知道当两个别名中都存在一个字段时,:在join中是必需的: A = foreach (join B by (x), C by (y)) generate B::y as b_y, C::y as c_y; 当访问组字段时,我需要: A = foreach (group B by (x,y)) generate group.x as x, group.y as y, SUM(B?z) as z; 但是,我是否将B::z或B.z传

Apache pig 使用Pig条件运算符实现or?

假设我有一些表f,由以下列组成: a, b 0, 1 0, 0 0, 0 0, 1 1, 0 1, 1 我想创建一个新的列c,它等于a | b 我尝试了以下方法: f = foreach f generate a, b, ((a or b) == 1) ? 1 : 0 as c; 但收到以下错误: ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: Pig script failed to parse: NoViableAltExcept

Apache pig 输入不匹配';(';应为引号字符串

我有下面给出的一个数据集 1,2,3 4,5,6 呼噜声命令我已经试过了 1.使用PigStorage(“,”)加载(“文本”); 2.A=使用PIG存储(',')加载(“文本”); 3.使用PigStorage(',')作为(f1:int,f2:int,f3:int)加载('text') 所有命令返回相同的错误 错误org.apache.pig.tools.grunt.grunt-错误1200:输入不匹配“(”应为QUOTEDSTRING检查文档,这很简单 A=LOAD'EMPLOYEE.da

Apache pig 无法在Pig脚本中使用双管道分隔符提取数据

我试图提取Pig中以管道分隔的数据。以下是我的命令 L = LOAD 'entirepath_in_HDFS/b.txt/part-m*' USING PigStorage('||'); 我得到以下错误 2016-08-04 23:58:21,122 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: Pig script failed to parse: <line 1, column 4> pig script

Apache pig 无法打开别名的迭代器

我知道这是重复最多的问题之一。我几乎找遍了所有地方,没有任何资源可以解决我面临的问题。 下面是我的问题陈述的简化版本。但在实际数据中,数据并不复杂,所以我必须使用UDF 我的输入文件:input.txt NotNeeded1,NotNeeded11;Needed1 NotNeeded2,NotNeeded22;Needed2 我希望输出是 Needed1 Needed2 所以,我在写下面的UDF Java代码: package com.company.pig; import java.io

Apache pig 如何在ApachePig中使用PigStorage存储gzip文件?

Apache Pig v0.7可以读取gzip文件,而无需我付出额外的努力,例如: MyData = LOAD '/tmp/data.csv.gz' USING PigStorage(',') AS (timestamp, user, url); 我可以处理这些数据并将其输出到磁盘好的: PerUser = GROUP MyData BY user; UserCount = FOREACH PerUser GENERATE group AS user, COUNT(MyData) AS cou

Apache pig 清管器配置弹簧

您是否遇到过使用spring配置和运行清管器作业的情况 因为最近我尝试集成spring和pig,在这期间我无法运行hdp:pig runner和hdp:pig factory标记。它给了我一个错误,说“cvc complex type.2.4.c:匹配的通配符是严格的,但是找不到元素'hdp:pig-factory'的声明。”。我尝试了所有可能的方法,但没有找到解决办法。你们谁能帮忙吗。。即使是任何小建议都会有帮助 我使用的模式是 <beans xmlns:hdp="http://www.

Apache pig 加载后将元组字段拆分为其他字段

我有一堆系统日志数据,看起来像这样 周一1月1日00:00:01 UTC 1970服务器名调试crond[123456]:系统消息告诉我一些事情 我不确定它在这里的格式中是否可见,但ServerName的每一侧都有一个制表符,用于拆分字符串。所以一开始加载它很容易 A = LOAD '/syslogfiles' USING PigStorage('\t') AS ( date:chararray, host:chararray, message:chararray); 现在我有一个有3个字段的

Apache pig 将清管器输出存储到csv文件中

我有一个csv文件,我正在使用它作为Pig脚本的输入。CSV有如下数据 1045966320189 1048 555 714067 1035 199 975050 1026 748 814808 1018 656 103141 1004 186 686093 1016 292 553100 1043 864 750624 1050 839 785765 1002 454 452221 1041 807 330616 1019 538 680915 1002 950 583

Apache pig 将具有多个包的元组拆分为多个元组

我的数据如下: {(2000)、(1800)、(2700)} {(2014),(1500),(1900)等。 我创建了一个java UDF: DataBag bag = (DataBag)input.get(0); Tuple categoryCode = null; Tuple auxiliary = TupleFactory.getInstance().newTuple(3); int i = 0; for(Iterator<Tuple> c

Apache pig 用拉丁语读取Json数据

我想用拉丁语读取Json中的嵌套数据 {"info":{"Id":53556,"State":"Ohio"},"time":139140} {"info":{"Id":3554,"State":"Calif"},"time":1391407471477} 我是用电脑做的 read = load '$json_file' USING JsonLoader('Id : chararray, state : chararray, time : chararray'); 以及使用PigStora

Apache pig 使用自定义秩在PIG中生成代理密钥

我将每天做PIG转换(每天新数据)。我需要为每天提取的数据生成唯一的密钥。最好的方法是什么?如果我执行tomarow的排名是否会覆盖今天的排名 您的排名将从每次开始时的1开始。如果您想每天生成唯一的数据,我建议在concat(rank+date)上使用datafu散列方法。您将得到一个唯一的散列,可以用作代理密钥 REGISTER datafu-1.2.0.jar DEFINE SHA datafu.pig.hash.SHA(); S1 = LOAD 'surrogate_hash' USIN

Apache pig 如何在pig脚本中转义单个引号

pig脚本可以使用双引号吗?如果不是,如何转义单个报价?我试图解析一个日期时间,但出现了错误 Unexpected character '"' 这是剧本 logOutput = FOREACH parsedLog GENERATE uid, ToDate(timestamp,"YYYY-MM-DD'T'hh:mm ss:'00'") as theTime:datetime 尝试使用\和单引号转义它们 logOutput = FOREACH parsedLog GENERATE uid, To

Apache pig apache pig加载具有多个分隔符的数据

大家好,关于使用ApachePig加载数据,我有一个问题,文件格式如下: "1","2","xx,yy","a,sd","3" A = LOAD 'file.csv' USING PigStorage('","') AS (f1,f2,f3,f4,f5); 所以我想通过使用多个分隔符“,”2双引号和一个逗号来加载它: "1","2","xx,yy","a,sd","3" A = LOAD 'file.csv' USING PigStorage('","') AS (f1,f2,f3,f4,

Apache pig 在清管器中使用多种条件的过滤柱

我需要编写一个pig脚本,在该脚本中,我将查找多个列的平均值,并仅获取所有列值都大于计算平均值的行。我的剧本是: i2 = GROUP i1 all; i3 = FOREACH i2 GENERATE AVG(i1.user_followers_count) AS avg_user_followers_count, AVG(i1.avl_user_follower_following_ratio) AS avg_avl_user_follower_following_ratio, AVG(i1.

  1    2   3   4   5   6  ... 下一页 最后一页 共 19 页