You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用NZFunApply调用Netezza表函数时NZPYIDA数据库检索错误求助

解决Netezza NZFunApply报错:ResolveCatalog: error retrieving database 'NZPYIDA'

报错原因

NZPYIDA是nzpyida的AE(分析引擎)模块默认使用的数据库,用于存储临时UDF、执行元数据等对象。你的环境中不存在该数据库,或当前用户无访问权限,导致触发报错。

解决建议

  • 创建NZPYIDA数据库
    使用具备数据库创建权限的账号(如admin)在Netezza控制台执行SQL:

    CREATE DATABASE NZPYIDA;
    

    创建完成后重新运行代码即可。

  • 指定现有数据库作为目标库
    修改NZFunApply的初始化代码,添加target_db参数,指定你有权限访问的现有数据库(比如代码中使用的weather库):

    nz_apply = NZFunApply(df=idadf, code_str=code_str_apply, fun_name='apply_fun', 
                          output_table="temp_conversion", output_signature=output_signature, 
                          merge_output_with_df=True, target_db='weather')
    
  • 验证INZA权限与配置
    确认当前用户(admin)对INZA相关数据库有读写权限,同时检查INZA分析引擎服务是否正常运行,确保Python UDF执行环境配置正确。

额外优化建议

代码中通过列索引(x[3]、x[24])取值易受表结构变化影响,建议改用列名取值,提升代码稳定性:

def apply_fun(self, x):
    from math import sqrt
    max_temp = x['MAX_TEMP']
    id = x['ID']
    fahren_max_temp = (max_temp*1.8)+32
    row = [id, max_temp, fahren_max_temp]
    self.output(row)

内容的提问来源于stack exchange,提问作者Sarath M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 00:07:14