在redshift UDF中导入水母模块

时间:2017-11-09 16:01:13

标签: amazon-redshift

Redshift - python UDF可以导入内置以及几个重要的模块。但我有一个需要"水母"模块。

我试图实现这里提到的步骤......

http://docs.aws.amazon.com/redshift/latest/dg/udf-python-language-support.html#udf-importing-custom-python-library-modules

但我想,在redshift UDF中导入模块必须更容易。如何在redshift中导入第三方模块?

1 个答案:

答案 0 :(得分:1)

这是正确的方法。您必须先导入库,然后UDF才能使用它。粗略的例子(未经测试):

CREATE LIBRARY jellyfish LANGUAGE plpythonu FROM 's3://…

CREATE OR REPLACE FUNCTION f_jellyfish_levenshtein (a varchar, b varchar) RETURNS int IMMUTABLE as $$ 
    import jellyfish
    jellyfish.levenshtein_distance(a, b)

    return LineSegment(x1, y1, x2, y2).distance()
$$ LANGUAGE plpythonu;

请注意,Redshift UDF目前不允许您执行C / C ++ Python扩展,只有纯Python库才能工作。