在哪里可以找到有关LoadFunc的更多信息/示例。 http://web.archive.org/web/20130701024312/http://ofps.oreilly.com/titles/9781449302641/load_and_store_funcs.html除外 我没有看到任何使用新LoadFunc APis的示例。 谁能告诉我在哪里可以找到一些编写Load UDF的例子?
答案 0 :(得分:6)
从0.7.0开始,Pig加载器扩展了LoadFunc抽象类。这意味着它们需要覆盖4个方法:
getInputFormat()此方法向调用者返回加载器支持的InputFormat的实例。实际加载过程需要在加载时使用实例,并且不希望对该实例的创建方式设置任何约束。
在读取分割之前调用prepareToRead()。它传入读取分割期间使用的阅读器以及实际分割。加载器的实现通常会使读者保持不变,如果需要,可能需要访问实际的拆分。
setLocation()Pig调用它将加载位置传递给加载器,加载器负责将该信息传递给底层的InputFormat对象。这个方法可以多次调用,因此不应该有与该方法相关的状态(除非在调用该方法时该状态被重置)。
getNext()在完成所有设置后,Pig调用此方法从加载器获取下一个元组。如果此方法返回NULL,则Pig假定已处理通过prepareToRead()方法传递的拆分中的所有信息。
以下是一些为猪编写自定义加载函数的好文章: