Dataframe 将pyspark数据帧写入具有相同列数和一个附加自动增量列的雪花表中

Dataframe 将pyspark数据帧写入具有相同列数和一个附加自动增量列的雪花表中,dataframe,pyspark,snowflake-cloud-data-platform,Dataframe,Pyspark,Snowflake Cloud Data Platform,我有一个pyspark dataframe,它有5列,我需要写入到Snowflake表中,该表有6列,5列与dataframe列相同,但Snowflake表中还有一个额外的自动增量列 当我试图将此数据帧写入雪花表时,它给出了一个错误;因为dataframe和Snowflake表中的列数不同,所以列不匹配。我已经尝试了mode='append',但这不起作用 df.write.format(snowflake_source_name) \ .options(**sfopti

我有一个pyspark dataframe,它有5列,我需要写入到Snowflake表中,该表有6列,5列与dataframe列相同,但Snowflake表中还有一个额外的自动增量列

当我试图将此数据帧写入雪花表时,它给出了一个错误;因为dataframe和Snowflake表中的列数不同,所以列不匹配。我已经尝试了mode='append',但这不起作用

df.write.format(snowflake_source_name) \
            .options(**sfoptions) \
            .option("dbtable", table_name) \
            .mode("append").save()
我希望dataframe中的这5列应该插入到 雪花表和第6个自增雪花列应为 对于插入的每一行,自动递增


自动递增列将像序列一样自动递增。不需要在数据框中给出,否则将出现列不匹配。在SnowFlake中定义表时,必须在SnowFlake DB中指定顺序,这将起到作用。代码中的Rest all看起来不错。

自动递增列将像序列一样自动递增。不需要在数据框中给出,否则将出现列不匹配。在SnowFlake中定义表时,必须在SnowFlake DB中指定顺序,这将起到作用。Rest所有的代码看起来都很好。

Hi@Ankur,感谢您的回复,但我不会将自动增量列添加到数据帧中。dataframe只有5列,当我试图将其写入具有6列的Snowflake表(5个相同的dataframe列+1个自动增量列)时,它会给出列不匹配错误。您可以共享您的代码,或者您可以在下面找到我的示例代码,这将有所帮助。员工=Row(“名字”、“姓氏”、“工作电话”、“城市”、“邮政编码”)员工1=员工('Ankur'、'Srivastava'、'1-289-759-3751'、'Fremonts',22030)有员工的部门1=有员工的Row(员工1)部门实际上我已经发现了这个错误,因为雪花表中的一列是VARIANT,而在dataframe中它是String。在Spark中,无法将柱铸造为变体。如果您对它有所了解,请您提供帮助。为什么您在Snowflake中将自动增量列定义为Variant。您可以删除该表并创建一个列为数字的新表。这是客户端创建的现有表,我不确定是否可以更改schemaHi@Ankur,感谢您的响应,但我不会将自动增量列添加到dataframe。dataframe只有5列,当我试图将其写入具有6列的Snowflake表(5个相同的dataframe列+1个自动增量列)时,它会给出列不匹配错误。您可以共享您的代码,或者您可以在下面找到我的示例代码,这将有所帮助。员工=Row(“名字”、“姓氏”、“工作电话”、“城市”、“邮政编码”)员工1=员工('Ankur'、'Srivastava'、'1-289-759-3751'、'Fremonts',22030)有员工的部门1=有员工的Row(员工1)部门实际上我已经发现了这个错误,因为雪花表中的一列是VARIANT,而在dataframe中它是String。在Spark中,无法将柱铸造为变体。如果您对它有所了解,请您提供帮助。为什么您在Snowflake中将自动增量列定义为Variant。您可以删除该表并创建一个列为数字的新表。这是客户端创建的现有表,我不确定是否可以更改架构