如何解决“SQL 编译错误:对象“SNOWPARK_TEMP_STAGE_FLGVIWVUC”已存在。”雪花问题?

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

我一直在使用 Snowflake 来做 ML 工作。 我建立了多元线性回归。我正在使用 session.write_pandas 将输出 df 编写为表。我收到此错误

'SQL compilation error: Object 'SNOWPARK_TEMP_STAGE_FLGVIWVUC' already exists.' 

在雪花流光应用程序中。如果我刷新页面就会出现这种情况。但为什么会出现这种情况呢?我在网络上找不到与此相关的问题。

仅当我将数据帧写为 pandas 时,我才会收到此错误。 下面是我收到此错误的代码。


from snowflake.snowpark.context import get_active_session
session = get_active_session()
session.write_pandas(df_final, "TEMPTABLE",database="LLM_DATABASE",schema="ML_SCHEMA", auto_create_table=True, overwrite=True)

我每次在 write_pandas 代码之前都尝试清除或删除舞台。

import uuid
    
# Drop the stage if it already exists
session.sql(f"DROP STAGE IF EXISTS {stage_name}").collect()

# Create a new temporary stage
session.sql(f"CREATE TEMPORARY STAGE {stage_name}").collect()

这不起作用,我收到此错误的真正原因是什么?

请帮忙,我不知道为什么会发生这种情况。

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

我相信以下临时修复可以解决您的问题。 这个补丁解决了我的问题。

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

session.sql("show stages").collect()
tmp_stage=session.sql('select "name" from TABLE(RESULT_SCAN(LAST_QUERY_ID())) where "owner"=current_role() order by "created_on" desc limit 1').collect();
my_bad_internal_stage=tmp_stage[0][0]
try:
    session.sql(f"DROP STAGE IF EXISTS {my_bad_internal_stage}").collect();
except:
    pass

session.write_pandas(df_final, "TEMPTABLE",database="LLM_DATABASE",schema="ML_SCHEMA", auto_create_table=True, overwrite=True)
© www.soinside.com 2019 - 2024. All rights reserved.