将数据加载到pig的udf python中

mv1qrgav  于 2021-06-25  发布在  Pig
关注(0)|答案(0)|浏览(492)

我正在用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之前调用一次set。但我不知道怎么做。我还尝试使用一个带有构造函数的类,但是我没有成功地调用成员函数“get”。
有人能帮我吗?
更新:
我“决定”现在有一个不太漂亮的解决办法:

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"

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题