对于初学者,我会承认我对与它们仅工作了几个月的数据框/数据砖很陌生。
我有两个从镶木地板文件中读取的数据帧(完整格式)。在查阅文档时,似乎在熊猫中称为合并的实际上只是一个联接。
在SQL中,我将此步骤编写为:
ml_RETURNS_U = sqlContext.sql("""
MERGE INTO U2 as target
USING U as source
ON (
target.ITEMNUMBER = source.ITEMNUMBER
and target.PRODUCTCOLORID = source.PRODUCTCOLORID
and target.WEEK_ID = source.WEEK_ID
)
WHEN MATCHED THEN
UPDATE SET target.RETURNSALESQUANTITY = target.RETURNSALESQUANTITY + source.QTY_DELIVERED
WHEN NOT MATCHED THEN
INSERT (ITEMNUMBER, PRODUCTCOLORID, WEEK_ID, RETURNSALESQUANTITY)
VALUES (source.ITEMNUMBER, source.PRODUCTCOLORID, source.WEEK_ID, source.QTY_DELIVERED)
""")
运行此命令时,出现以下错误:u'MERGE目标仅支持Delta源。\ n;'
所以我有两个问题:有没有办法使用pandas或pySpark执行此操作?
如果没有,我该如何解决此错误?
答案 0 :(得分:0)
您可以使用DELTA创建表并执行此操作
请参阅:https://docs.databricks.com/delta/index.html
因此,您可以使用https://docs.databricks.com/delta/delta-batch.html#write-to-a-table
这样的合并进行upsert