Tag: apache pig

执行UDF时Pig错误1070

我正在尝试在猪中加载我自己的UDF。 我已经使用eclipse的导出function将它变成了一个jar。 我试图在本地运行它,所以我可以确保它在我把jar放在HDFS上之前有效。 在本地运行时,我收到以下错误: ERROR 1070: Could not resolve myudfs.MONTH using imports: [, org.apache.pig.builtin., org.apache.pig.impl.builtin.] 脚本 REGISTER myudfs.jar; –DEFINE MONTH myudfs.MONTH; A = load ‘access_log_Jul95’ using PigStorage(‘ ‘) as (ip:chararray, dash1:chararray, dash2:chararray, date:chararray, getRequset:chararray, status:int, port:int); B = FOREACH A GENERATE myudfs.MONTH(date); DUMP B; function package myudfs; import java.io.IOException; import org.apache.pig.EvalFunc; import org.apache.pig.data.Tuple; import org.apache.pig.impl.util.WrappedIOException; […]

Apache pig脚本,错误1070:Java UDF无法解析导入

我正在尝试编写一个Java UDF,其最终目标是扩展/覆盖PigStorage的加载方法,以支持多行的条目。 我的猪脚本如下: REGISTER udf.jar; register ‘userdef.py’ using jython as parser; A = LOAD ‘test_data’ USING PigStorage() AS row:chararray; C = FOREACH A GENERATE myTOKENIZE.test(); DUMP D; udf.jar看起来像: udf/myTOKENIZE.class myTOKENIZE.java导入org.apache.pig。* ande扩展了EvalFunc。 测试方法只返回一个Hello world String。 我遇到的问题是,当我尝试调用类myTOKENIZE的方法test()时,我得到错误1070:错误1070:无法使用导入解析myTOKENIZE.test:[,java.lang。,org.apache.pig .builtin。,org.apache.pig.impl.builtin。]想法?

如何在Apache PIG中正确进行内连接?

我有两个文件,一个叫做a-records 123^record1 222^record2 333^record3 和另一个名为b-records的文件 123^jim 123^jim 222^mike 333^joe 你可以在文件A中看到我有一次令牌123。 在文件B中,它在那里两次。 有没有办法使用Apache PIG我可以加入数据,这样我只能从A文件中获得一条连接记录? 这是我当前的脚本,输出如下 arecords = LOAD ‘$a’ USING PigStorage(‘^’) as (token:chararray, type:chararray); brecords = LOAD ‘$b’ USING PigStorage(‘^’) as (token:chararray, name:chararray); x = JOIN arecords BY token, brecords BY token; dump x; 产量: (123,record1,123,jim) (123,record1,123,jim) (222,record2,222,mike) (333,record3,333,joe) 当我真正想要的是(通知令牌123仅在加入后一次) (123,record1,123,jim) (222,record2,222,mike) (333,record3,333,joe) 有任何想法吗? 非常感谢

Java Pig拉丁语句子翻译使用队列

我是Java的新手,我正在尝试创建一个程序,将一个句子翻译成Pig Latin,将单词的第一个字母移到最后,如果第一个字母是元音,则在末尾添加“y”并且“ay”最后,否则。 我需要为此使用队列。 目前我的计划正在终止,我想知道是否有人能够找到我出错的地方或下一步去哪里。 谢谢! import MyQueue.QueueList; import java.util.Scanner; 公共类PigLatin { public static void main (String[] args) { Scanner scan = new Scanner (System.in); QueueList word = new QueueList(); String message; int index = 0; char firstch; System.out.print (“Enter an English sentence: “); message = scan.nextLine(); System.out.println (“The equivalent Pig Latin sentence is: “); firstch […]

在Pig Latin中为每个组写一个文件

问题:我有许多包含Apache Web服务器日志条目的文件。 这些条目不是按日期时间顺序排列,而是分散在文件中。 我正在尝试使用Pig来读取一天的文件,按日期时间对日志条目进行分组和排序,然后将它们写入以其包含的条目的日期和小时命名的文件。 设置:一旦我导入了我的文件,我使用Regex获取日期字段,然后我将其截断为小时。 这将生成一个集合,该集合在一个字段中包含记录,而日期在另一个字段中截断为小时。 从这里开始,我在日期时间字段上进行分组。 第一次尝试:我的第一个想法是使用STORE命令,同时使用FOREACH迭代我的组,并很快发现Pig并不酷。 第二次尝试:我的第二次尝试是在piggybank中使用MultiStorage()方法,这种方法很有效,直到我查看文件。 问题是MulitStorage想要将所有字段写入文件,包括我以前用于分组的字段。 我真正想要的只是写入文件的原始记录。 问题:那么……我是否将Pig用于不适合的事情,或者是否有更好的方法让我使用猪来解决这个问题? 现在我有了这个问题,我将编写一个简单的代码示例来进一步解释我的问题。 有了它,我会在这里发布。 提前致谢。

从Java应用程序中执行Pig

是否可以在Java应用程序中运行Apache Pig作业,而不需要外部进程? 似乎Pig和Hadoop都是用Java编写的,但并不真正提供Java API。 我宁愿在Java Spring应用程序中使用这些工具表单,而不是依赖shell脚本。

无法构建piggybank – > / home / build / ivy / lib不存在

嘿所有我按照这里的步骤: http ://wiki.apache.org/pig/PiggyBank来构建piggybank jar,但我继续得到下面的输出。 我还在源代码中构建了pig项目,并在我的.bash_profile中引用了: cloudera@cloudera-demo:~/piggybank/java$ ./makepiggy.sh Buildfile: /home/cloudera/piggybank/java/build.xml download-hive-deps: init: compile: [echo] *** Compiling Pig UDFs *** [javac] /home/cloudera/piggybank/java/build.xml:100: warning: ‘includeantruntime’ was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds [javac] Compiling 153 source files to /home/cloudera/piggybank/java/build/classes BUILD FAILED /home/cloudera/piggybank/java/build.xml:100: /home/build/ivy/lib does not exist. 这是我的bash_profile: export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.22 export CLASSPATH=$CLASSPATH:/home/cloudera/pig/trunk/pig.jar **更新** Wiki页面上的文档不正确,现在看起来是正确的: […]

在哪里可以看到从hadoop pig语句生成的mapreduce代码

我们都知道hadoop pig语句被转换成java mapreduce代码。 我想知道有什么办法可以看到pig语句生成的mapreduce代码吗?

象鸟mvn包错误

我在我的系统中安装了hadoop 2.2。 我想用象鸟jar。 在运行“mvn package”时出现以下错误。 错误: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project elephant-bird-core: Compilation failure: Compilation failure: [ERROR] /usr/lib/hadoop/elephant_bird/core/target/generated-sources/thrift/com/twitter/elephantbird/thrift/test/TestListInList.java: [9,39] error: package org.apache.commons.lang3.builder does not exist [ERROR] /usr/lib/hadoop/elephant_bird/core/target/generated-sources/thrift/com/twitter/elephantbird/thrift/test/TestListInList.java: [10,31] error: package org.apache.thrift.scheme does not exist [ERROR] /usr/lib/hadoop/elephant_bird/core/target/generated-sources/thrift/com/twitter/elephantbird/thrift/test/TestListInList.java: [11,31] error: package org.apache.thrift.scheme does not exist [ERROR] /usr/lib/hadoop/elephant_bird/core/target/generated-sources/thrift/com/twitter/elephantbird/thrift/test/TestListInList.java: [12,31] error: package org.apache.thrift.scheme does not […]

Pig Udf显示结果

我是猪的新手,我在java中编写了一个udf并且我已经包含了一个 System.out.println 声明。 我必须知道在猪身上跑步时这个陈述的印刷地点。