dataframe write partitionby-无法参数化多列

8nuwlpux  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(381)

创建接受tablename和partition列作为输入的通用代码。但是,在尝试将Dataframe作为分区表写入时遇到问题。

partAttr='product_category_id,product_id' 
pattr=partAttr.split(",")
df.write.partitionBy('"'+'","'.join(pattr)+'"').saveAsTable(dataBase+".temptable_"+deltaTable)

pyspark.sql.utils.analysisexception:表中未定义u'partition列“product\u category\u id”,“product\u id” bbiuserdb . temptable_products_stg ,定义的表列为:产品标识、产品名称、产品描述、产品价格、产品图像、产品类别标识;'
但是,如果pattr变量中只有一个属性,上面的代码就可以工作。
有没有人遇到过类似的情况?

ckx4rj1h

ckx4rj1h1#

设法确定了一个不同的路线,但我不知道上述失败的原因-

df.write.partitionBy(pattr[0:]).saveAsTable(dataBase+".temptable_"+deltaTable)

以python的方式考虑完整列表

相关问题