创建接受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变量中只有一个属性,上面的代码就可以工作。
有没有人遇到过类似的情况?
1条答案
按热度按时间ckx4rj1h1#
设法确定了一个不同的路线,但我不知道上述失败的原因-
以python的方式考虑完整列表