【发布时间】:2017-11-09 16:01:12
【问题描述】:
Redshift - python UDF 可以导入内置以及几个重要的模块。但我有一个需要“水母”模块的功能。
我尝试执行此处提到的步骤...
但我想,在 redshift UDF 中导入模块一定更容易。如何在 redshift 中导入第三方模块?
【问题讨论】:
标签: amazon-redshift
Redshift - python UDF 可以导入内置以及几个重要的模块。但我有一个需要“水母”模块的功能。
我尝试执行此处提到的步骤...
但我想,在 redshift UDF 中导入模块一定更容易。如何在 redshift 中导入第三方模块?
【问题讨论】:
标签: amazon-redshift
这是正确的方法。您必须先导入库,然后您的 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 库。
【讨论】: