我正在尝试通过 jupyter 笔记本运行此代码,以在 netezza 服务器中的表上应用函数,因此我可以在内部表上应用此代码,而无需从表/数据库中获取数据。
from nzpyida import IdaDataBase, IdaDataFrame
from nzpyida.ae import NZFunApply
idadb = IdaDataBase('weather', 'admin', 'password', verbose=True)
idadf = IdaDataFrame(idadb, 'WEATHER')
code_str_apply = """def apply_fun(self, x):
from math import sqrt
max_temp = x[3]
id = x[24]
fahren_max_temp = (max_temp*1.8)+32
row = [id, max_temp, fahren_max_temp]
self.output(row)
"""
output_signature = {'ID': 'int', 'MAX_TEMP': 'float', 'FAHREN_MAX_TEMP': 'float'}
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)
result = nz_apply.get_result()
print(result)
此代码返回以下错误消息,
ProgrammingError: ERROR: ResolveCatalog: error retrieving database 'NZPYIDA'
我没有在笔记本中的任何地方使用名为“NZPYIDA”的数据库,我不确定导致此错误的原因以及发生了什么!服务器已安装INZA。
请推荐! 预先感谢:)
ResolveCatalog
错误来自后端(数据库引擎)。请检查以 NZ*
开头的数据库列表,并验证该数据库是否存在。当 pg.log
执行时检查后端 apply_fun
也很好。