gpt4 book ai didi

python - 在 Redshift 中创建 python UDF 时出错

转载 作者:太空宇宙 更新时间:2023-11-03 20:41:39 24 4
gpt4 key购买 nike

我正在尝试在 Amazon Redshift 中创建 Python UDF,并且已成功创建 UDF,没有错误。我还成功创建了该 UDF 所需的库。但是当我执行 UDF 时,出现错误:

No Module Named pyffx. Please look at svl_udf_log for more information

我已从 pypi.org 下载该库并将其上传到 Amazon S3。这是我用来下载该库的链接:

https://pypi.org/project/pyffx/#files

create library pyffx
language plpythonu
from 's3://aws-bucket/tmp/python_module/pyffx-0.3.0.zip'
credentials
'aws_iam_role=iam role'
region 'us-east-1';

CREATE OR REPLACE FUNCTION schema.ffx(src VARCHAR)
RETURNS VARCHAR
STABLE
AS $$
import pyffx
src = unicode(src)
value=(src)
l=len(value)
e = pyffx.String(b'secret-key', alphabet='abcedefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ', length=l)
return e.encrypt(value)
$$ LANGUAGE plpythonu;

最佳答案

我设法让它发挥作用......有点。

我做了以下事情:

  • 通过您提供的链接下载了 pyffx
  • 提取 .tar.gz 文件并创建文件的 .zip
  • 已将 .zip 文件复制到 Amazon S3
  • 使用 CREATE LIBRARY 命令加载库
  • 创建了函数

但是,当我使用该函数时,我收到错误:

Invalid operation: AttributeError: 'module' object has no attribute 'add_metaclass'

我的研究表明,six 库(提供 Python 2 和 3 兼容性)是此问题的根源。 Python Language Support for UDFs - Amazon Redshift页面表明 Redshift 中包含 6 1.3,但 Pip six.add_metaclass error说这个版本不包括add_metaclass6 的当前版本是 1.12。

我尝试在代码中包含更新的 six 库,但没有成功。你可能比我更能争论。

关于python - 在 Redshift 中创建 python UDF 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56829370/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com