在哪里可以找到有关loadfunc的更多信息/示例。除了http://web.archive.org/web/20130701024312/http我没有看到任何使用新loadfunc API的例子。谁能告诉我在哪里可以找到一些写loadudf的例子吗?
xggvc2p61#
从0.7.0开始,pig加载程序扩展loadfunc抽象类。这意味着它们需要重写4个方法:getinputformat()此方法将加载程序支持的inputformat示例返回给调用方。实际的加载过程需要在加载时使用一个示例,并且不希望对如何创建该示例施加任何约束。在读取拆分之前调用preparetoread()。它传入在读取拆分期间使用的读取器以及实际拆分。加载器的实现通常会保留读卡器,如果需要的话,可能需要访问实际的split。setlocation()pig调用此函数将加载位置传递给加载程序,加载程序负责将该信息传递给基础inputformat对象。此方法可以多次调用,因此不应存在与该方法关联的状态(除非调用该方法时该状态被重置)。getnext()pig调用这个函数,在所有设置完成后从加载程序中获取下一个元组。如果此方法返回null,pig将假定通过preparetoread()方法传递的剥离中的所有信息都已处理。下面是一些为pig编写自定义加载函数的好文章:编写自定义清管器加载程序使用loadfunc pig udf将protobuf格式文件加载到pig脚本中
1条答案
按热度按时间xggvc2p61#
从0.7.0开始,pig加载程序扩展loadfunc抽象类。这意味着它们需要重写4个方法:
getinputformat()此方法将加载程序支持的inputformat示例返回给调用方。实际的加载过程需要在加载时使用一个示例,并且不希望对如何创建该示例施加任何约束。
在读取拆分之前调用preparetoread()。它传入在读取拆分期间使用的读取器以及实际拆分。加载器的实现通常会保留读卡器,如果需要的话,可能需要访问实际的split。
setlocation()pig调用此函数将加载位置传递给加载程序,加载程序负责将该信息传递给基础inputformat对象。此方法可以多次调用,因此不应存在与该方法关联的状态(除非调用该方法时该状态被重置)。
getnext()pig调用这个函数,在所有设置完成后从加载程序中获取下一个元组。如果此方法返回null,pig将假定通过preparetoread()方法传递的剥离中的所有信息都已处理。
下面是一些为pig编写自定义加载函数的好文章:
编写自定义清管器加载程序
使用loadfunc pig udf将protobuf格式文件加载到pig脚本中