DataFrame Write PartitionBy - невозможно параметризовать несколько столбцов
Создание общего кода, который принимает столбцы 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.
Кто-нибудь сталкивался с подобной ситуацией?
1 ответ
Удалось определить другой маршрут, но я не уверен в причине вышеупомянутого сбоя -
df.write.partitionBy(pattr[0:]).saveAsTable(dataBase+".temptable_"+deltaTable)
Рассмотрен питонский способ полного списка