DataFrame Write PartitionBy - 无法参数化多个列

问题描述 投票:0回答:1

创建一个接受TableName和Partition列作为输入的通用代码。但是在尝试将数据帧写为分区表时遇到问题。

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变量中有单个属性,则上述代码可以正常工作。

有没有人遇到类似的情况?

hadoop pyspark spark-dataframe mapr
1个回答
0
投票

管理以识别不同的路线,但我不确定上述失败的原因 -

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

考虑完整列表的python方式

© www.soinside.com 2019 - 2024. All rights reserved.