如何解决 SnowparkSQLException: ... Snowpark python SPROC 调用函数中的用户为空?

问题描述 投票:0回答:1

调用 Snowpark 注册的 SPROC 时,出现以下错误:

SnowparkSQLException: (1304): <uuid>: 100357 (P0000): <uuid>: Python Interpreter Error:
snowflake.connector.errors.ProgrammingError: 251005: User is empty in function MY_FUNCTION with handler compute

对于以下Python代码和调用:

def my_function(session: Session,
                input_table: str,
                limit: int) -> None:
    # Even doing nothing doesn't work!
    return

sproc_my_function = my_session.sproc.register(func=my_function,
                                           name='my_function',
                                           is_permanent=True,
                                           replace=True,
                                           stage_location='@STAGE_LOC',
                                           execute_as="owner",


input_table = 'x.y.MY_INPUT_TABLE'

sproc_process_row(my_session,
                  input_table,
                  100,
                  )

我在互联网上的任何地方都找不到对此异常和“用户功能为空”的引用 - 这让我想知道它是否是某种类型的下降。我也找不到将用户传递给注册方法的方法(这在设置 my_session 时已经成功完成)。

请帮忙!

python stored-procedures snowflake-cloud-data-platform
1个回答
0
投票

使用雪花笔记本:

from snowflake.snowpark.session import Session
my_session = snowflake.snowpark.context.get_active_session()

def my_function(session: Session,
                input_table: str,
                limit: int) -> None:
    return None

sproc_my_function = my_session.sproc.register(func=my_function,
                                           name='my_function',
                                           is_permanent=True,
                                           replace=True,
                                           stage_location='STAGE_LOC',
                                           execute_as="owner",
                                           packages=["snowflake-snowpark-python"])

输出:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.