有关LoadFunc的示例和更多说明

Uno*_*Uno 2 hadoop apache-pig hdfs

在哪里可以找到有关LoadFunc的更多信息/示例.除了http://web.archive.org/web/20130701024312/http://ofps.oreilly.com/titles/9781449302641/load_and_store_funcs.html, 我没有看到任何使用新LoadFunc APis的示例.任何人都可以告诉我在哪里可以找到编写Load UDF的示例?

Avk*_*han 6

从0.7.0开始,Pig加载器扩展了LoadFunc抽象类.这意味着它们需要覆盖4个方法:

  • getInputFormat()此方法向调用者返回加载器支持的InputFormat的实例.实际加载过程需要在加载时使用实例,并且不希望对该实例的创建方式设置任何约束.

  • 在读取分割之前调用prepareToRead().它传入读取分割期间使用的阅读器以及实际分割.加载器的实现通常会使读取器保持不变,并且可能需要在需要时访问实际的拆分.

  • setLocation()Pig调用它将加载位置传递给加载器,加载器负责将该信息传递给底层的InputFormat对象.此方法可以多次调用,因此不应该与该方法相关联的状态(除非在调用该方法时该状态被重置).

  • getNext()Pig调用它以在完成所有设置后从加载器获取下一个元组.如果此方法返回NULL,则Pig假定已处理通过prepareToRead()方法传递的拆分中的所有信息.

以下是为Pig编写自定义加载函数的一些好文章: