草庐IT

hadoop - 用于计算 emp 时间的最小值、最大值的 Pig 脚本

我是Pig和Hadoop世界的新手。我遇到的问题可能很简单,但我无法继续。所以我有下面的数据,这些数据基本上是一天的数据。我需要使用PIG计算员工一天花费的总小时数,即第一次上类时间(他到达办公室的时间)和最后一次下类时间(当天最后一次刷卡)之间的差异。EmpIDIn_TimeOut_Time19:0010:0028:0011:00310:0012:00111:0013:00114:0018:00212:0018:00313:0018:00所以我写了下面的脚本,但它似乎没有给出正确的结果。grunt>emprec=load'/emptime/emptime'usingPigStorag

hadoop - 在 Hadoop/Pig 中使用匹配进行过滤

我正在尝试学习Hadoop/Pig并一直在AWS上工作,日期看起来像这样(每列包含各种网站):.我正在尝试过滤其中包含“业务”的行,但过滤器一直返回0条记录。my_data的格式如上所示,有3列,第一列是上面显示的主题以及我要过滤的内容。我有:filter1=FILTERmy_dataBYsubject=='.*business.*';不确定为什么这没有返回任何内容,因为“业务”肯定在其中3个记录中。 最佳答案 试试这个filter1=FILTERmy_dataBY(subjectmatches'.*business.*');

hadoop - 如何执行 Group by 然后在 pig 的其他列上使用 DISTINCT

我刚刚开始学习PIG,需要一些帮助解决以下问题。提前致谢!例如:我有这样的输入:职业类别名称ActressActingMarionCotillardActorActingLiamNelsonTennisPlyrAthleticsRogerFedererFootballPlyrAthleticsNeymarActorActingTomHanksActressActingElizabethBanksUSSenatorPoliticsElizabethWarrenFootballPlyrAthleticsMesutOzil我想知道单个类别中有多少种类型。例如:-表演有两种类型,一种是女Act

hadoop - Apache Pig : java. lang.OutOfMemoryError:Java 堆空间

所以我正在尝试连接两只pig的关系。RELATION1=LOAD'$path'USINGAvroStorage();RELATION2=LOAD'$path'USINGAvroStorage();RELATION3=JOINRELATION1BYfield,JOINRELATION2BYfield;STORERELATION3INTO'$PATH'USINGAvroStorage();但是我收到以下错误:java.lang.RuntimeException:java.lang.reflect.InvocationTargetExceptionCausedby:java.lang.ref

hadoop pig 包减法

我正在使用Pig来解析我的应用程序日志,以了解上个月未调用(由同一用户)的用户调用了哪些公开的方法。我已经设法在上个月之前和上个月之后获得用户分组调用的方法:上个月之前的关系样本u1{(m1),(m2)}u2{(m3),(m4)}上个月关系样本之后u1{(m1),(m3)}u2{(m1),(m4)}我想要的是让用户找到哪些方法在AFTER中,哪些方法不在BEFORE中,也就是NEWLY_CALLED预期结果u1{(m3)}u2{(m1)}问题:我怎样才能在Pig中做到这一点?是否可以减去袋子?我试过DIFF函数,但它没有执行预期的减法。问候,乔尔 最佳答案

hadoop - 以不同的用户身份运行 Pig 作业

这是一种情况,我有一个没有配置Kerberos安全性和工作站的hadoop集群。Hadoop集群运行ClouderaCDH3发行版。集群上的数据全部存储在'hdfs'用户下。工作站是运行嵌入PIG客户端的复杂软件的linux或macos工作站。PIG客户端连接到集群以运行分析作业。这里有个问题。集群和工作站上的用户帐户不同,hadoop集群中的所有数据都存储在“hdfs”主目录下用户工作站具有完整的用户帐户集。是否可以告诉PIG在不同的用户帐户下执行作业。当前pig尝试使用当前登录到工作站的用户帐户执行作业。该作业实际运行但无法访问数据,因为脚本使用相对于HDFS用户主目录的路径。我知

Hadoop Pig Latin,CONCAT 函数失败

我已经尝试了所有我能想到的排列,但我无法让CONCAT工作。当我尝试时:fake=loadCONCAT('foo','bar');我得到以下信息:2013-01-1712:41:44,443[main]错误org.apache.pig.tools.grunt.Grunt-错误1200:不匹配的输入“CONCAT”需要QUOTEDSTRING我试过双引号,我不希望它起作用,但确实没有;我试过了将参数传递给脚本并对它们使用CONCAT,我得到了同样的错误。为了激发这一点,我试图指定一个基本输出目录,该目录根据我想要的结果文件的位置与各种可能的子输出目录连接在一起。顺便说一句,我也试过:fa

java - 远程运行 Pig 作业

我正在学习Pig作业并希望使用PigServer通过Java代码在远程集群上运行Pig脚本。谁能指导我如何实现这一目标?提前致谢。 最佳答案 上面的代码是否可以用于远程调用,即Pig安装在cluster1上并从集群外的应用服务器进行调用? 关于java-远程运行Pig作业,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/14508361/

hadoop - 分析 Pig/Hive 编译器生成的 Map-Reduce 作业

有没有办法查看由Pig和Hive生成​​的Map-Reduce作业的代码?我知道使用Hive,我可以查看抽象语法树,但似乎无法访问MR作业的实际Java代码。我的假设有误吗? 最佳答案 Pig和Hive不生成任何Java代码,而是进行计划。可以使用shell中的explain命令查看该计划。从SQL生成Java代码的一种方法是使用YSmart.请注意,有很多changes发生在Hive中以使其更快。 关于hadoop-分析Pig/Hive编译器生成的Map-Reduce作业,我们在Sta

java - 做UDF时Pig报错1070

我正在尝试在pig中加载我自己的UDF。我已经使用eclipse的导出功能将它制作成一个jar。我正在尝试在本地运行它,以便在将jar放在HDFS上之前确保它可以正常工作。在本地运行时,出现以下错误:错误1070:无法使用导入解析myudfs.MONTH:[,org.apache.pig.builtin.,org.apache.pig.impl.builtin.]脚本REGISTERmyudfs.jar;--DEFINEMONTHmyudfs.MONTH;A=load'access_log_Jul95'usingPigStorage('')as(ip:chararray,dash1:c