Apache spark Spark向配置单元写入错误的表“U名称为分区规范并抛出”;分区规范包含非分区列“;错误

Apache spark Spark向配置单元写入错误的表“U名称为分区规范并抛出”;分区规范包含非分区列“;错误,apache-spark,hadoop,amazon-s3,hive,Apache Spark,Hadoop,Amazon S3,Hive,我的配置单元表定义为按(ds字符串、模型字符串)分区的 当我在Pypark给桌子写信时,我做到了 output_df .repartition(250) .write .mode('overwrite') .format('parquet')\ .partitionBy('ds', 'model')\ .saveAsTable('{table_schema}.{table_name}'.format(table_schema=table_schema, table_

我的配置单元表定义为按(ds字符串、模型字符串)分区的
当我在Pypark给桌子写信时,我做到了

output_df
  .repartition(250)
  .write
  .mode('overwrite')
  .format('parquet')\
  .partitionBy('ds', 'model')\
  .saveAsTable('{table_schema}.{table_name}'.format(table_schema=table_schema, 
  table_name=table_name))
但是,我遇到了以下错误:

org.apache.hadoop.hive.ql.metadata.Table.ValidationFailureSemanticException: Partition spec {ds=2019-10-06, model=p1kr, table_name=drv_projection_table} contains non-partition columns

似乎Spark或Hive将表名误认为是分区。我的表的S3路径是
S3://some\u path/qubole/table\u name=drv\u projection\u table
,但是
table\u name
没有指定为分区的一部分

当您在
saveAsTable
中使用
table\u name
时,它是什么?它是
drv\u projection\u table
,与错误消息被视为分区键的值相同。如果您不希望Hive将其解释为分区规范,则整个
表\u name=drv\u projection\u table
应该是表的名称。我不确定您是如何创建它的(其中
=
是一个特殊字符),看。@dayup你解决问题了吗?我也面临同样的问题。当您在
saveAsTable
中使用
table\u name
时,它是什么?它是
drv\u projection\u table
,与错误消息被视为分区键的值相同。如果您不希望Hive将其解释为分区规范,则整个
表\u name=drv\u projection\u table
应该是表的名称。我不确定您是如何创建它的(其中
=
是一个特殊字符),看。@dayup你解决问题了吗?我也面临同样的问题。