创建一个接受表名和分区列作为输入的泛型代码。但是,尝试将数据帧写入分区表时面临问题。
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_category_id"、"product_id" 未在表
bbiuserdb
中定义。temptable_products_stg
,定义的表列为:product_id、product_name、product_description、product_price、product_image、product_category_id;
但是,如果我在 pattr 变量中有单个属性,上面的代码有效。
有没有人遇到过类似的情况?
设法确定了不同的路线,但我不确定上述失败的原因 -
df.write.partitionBy(pattr[0:]).saveAsTable(dataBase+".temptable_"+deltaTable)
考虑了完整列表的python方式