我正在使用python为PIG编写UDF函数。我发现了一个问题,因为我需要从文件中加载一些数据来计算udf结果。
我将使用一个例子来扩展我的想法。我的想法是编写两个函数,其中一个用于初始化:
abbr = []
def set (filename):
file = open(filename, "r")
for i in file:
abbr.append(i)
@outputSchema("out:chararray")
def get (line):
for i in abbr:
if line.endswith(i):
return "yes"
return "no"
我的PIG脚本应该拨打一次"设置"在使用" get"之前。但是我不知道怎么做。我也尝试使用带有构造函数的类,但我没有设法调用成员函数" get"。
有人可以帮助我吗?
更新
我已经解决了#34;现在有一个不太漂亮的解决方法:
abbr = []
@outputSchema("out:chararray")
def get (line):
if len(abbr)==0:
file = open("file.txt", "r")
for i in file:
abbr.append(i)
for i in abbr:
if line.endswith(i):
return "yes"
return "no"