如何去除Snowpark DataFrame列名双引号并无引号保存Snowflake表
Pandas DataFrame转Snowpark DataFrame后,Snowflake表列名带双引号的解决办法
我尝试用以下代码将Pandas DataFrame转换为Snowpark DataFrame并保存为Snowflake表:
pdf = pd.DataFrame(...) pdf.columns = pdf.columns.str.replace(' ', '') sdf = session.createDataFrame(pdf) sdf.write.saveAsTable('MY_TABLE_NAME', mode="overwrite")
处理后Pandas DataFrame的列名仅包含字母和下划线,但最终生成的Snowflake表列名带有双引号。请问如何保存不带双引号列名的表?
已验证的有效解决方案
将列名转为大写(由ADITYA PAWAR提供)
把Pandas DataFrame的列名统一转为大写后再生成Snowpark DataFrame,保存后的表列名将不带双引号:pdf.columns = pdf.columns.str.upper().str.replace(' ', '') sdf = session.createDataFrame(pdf) sdf.write.saveAsTable('MY_TABLE_NAME', mode="overwrite")使用
write_pandas()方法(由Aek提供)
直接调用Snowpark Session的write_pandas()方法写入Snowflake,该方法默认生成不带双引号的列名,支持临时表和永久表:# 写入临时表 session.write_pandas(pdf, 'MY_TABLE_NAME', auto_create_table=True, table_type="temporary", schema='MY_SCHEMA_NAME') # 写入永久表 session.write_pandas(pdf, 'MY_TABLE_NAME', auto_create_table=True, schema='MY_SCHEMA_NAME')
内容的提问来源于stack exchange,提问作者Piotr K
相关产品推荐
相关产品推荐

