Для начала, я признаю, что я довольно плохо знаком с фреймами данных / блоками данных, работая с ними всего несколько месяцев.
У меня есть два кадра данных, прочитанных из файлов паркета (полный формат) При просмотре документации выясняется, что то, что в пандах называется слиянием, на самом деле является всего лишь соединением.
в 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?
если нет, как я могу устранить эту ошибку?