<!-- @page { margin: 0.79in } P { margin-bottom: 0.08in } A:link { so-language: zxx } -->
在 pig 中使用 UDF 函数:
1 ,编写 UDF 函数:
import java.io.IOException;
import org.apache.pig.FilterFunc;
import org.apache.pig.data.Tuple;
public class IsGoodQuality extends FilterFunc{
@Override
public Boolean exec(Tuple tuple) throws IOException {
if(tuple == null || tuple.size() == 0) {
return false;
}
Object object = tuple.get(0);
if(object == null) {
return false;
}
int i = (Integer) object;
return i == 1;
}
}
2. 将 UDF 函数打包成 jar 包
3. 告诉 pig 这个 jar 包的信息:
register /home/hadoop/Desktop/generate-lib/IsGoodQualityjar.jar
4. 使用这个函数:
filter_records =filter records by com.jdbc.IsGoodQuality(quality);
5. 查看结果:
dump filter_records;
6. 为自己写的 UDF 函数定义别名:
define IsGood com.jdbc.IsGoodQuality();
这里为自己写的 IsGoodQuality() 起别名为 IsGood;
7. 使用重新命令的函数:
filtered_records =filter records by IsGood(quality);
8. 查看效果:
dump filtered_records;