用pig的名字写了一个自定义自定义自定义项 vaidateUser
验证用户名。
public class ValidateUser extends FilterFunc {
public Boolean exec(Tuple tuple) throws IOException {
// custom validation code
}
}
类是默认包的一部分,也是 pig_udfs.jar
.
此jar用于pig脚本: validateUsers.pig
```
REGISTER 'pig_udfs.jar';
users = load 'users.txt' using PigStorage(',') as (user:chararray);
validUsers = filter users by ValidateUser(user);
dump validUsers;
尝试使用以下命令执行脚本:
pig -x local validateusers.pig
如有以下错误,如有任何意见或想法,我们将不胜感激!
清管器堆栈跟踪:
ERROR 1003: Unable to find an operator for alias fileterd
org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1003: Unable to find an operator for alias fileterd
at org.apache.pig.PigServer.openIterator(PigServer.java:732)
at org.apache.pig.tools.grunt.GruntParser.processDump(GruntParser.java:615)
at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:303)
at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:168)
at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:144)
at org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:90)
at org.apache.pig.Main.run(Main.java:500)
at org.apache.pig.Main.main(Main.java:107)
1条答案
按热度按时间sqyvllje1#
我没有面对任何问题
custom filter UDF
你能试试这个吗?。在下面的例子中,我将过滤掉所有不等于"test"
.用户.txt
Pig手稿:
验证用户.java
输出:
确保在类路径中设置了piggybank.jar