我一直在使用 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()
这不起作用,我收到此错误的真正原因是什么?
请帮忙,我不知道为什么会发生这种情况。
我相信以下临时修复可以解决您的问题。 这个补丁解决了我的问题。
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)