首页 > 解决方案 > 是否可以在合并操作中从数据帧中读取

问题描述

在下面的示例中product_new是一个数据框。是否可以在合并操作中直接使用product_new而不是声明为临时表?当前product_new数据帧存储为名为 product_new_temp的临时表,用于合并操作。无论如何在合并操作中直接调用product_new数据框?当我在合并中直接使用product_new时,它给了我无效的表/视图错误。火花/数据砖

product = spark.read.format('csv').options(header='true',inferSchema='true').load("/FileStore/tables/product-1.csv")
product.write.format("delta").saveAsTable("product_delta_table")

product_new = spark.read.format('csv').options(header='true',inferSchema='true').load("/FileStore/tables/product_delta.csv")
product_new.createOrReplaceTempView("product_new_temp")


%sql
MERGE INTO product_delta_table
USING **product_new_temp**
ON product_delta_table.productCode = **product_new_temp**.productCode
WHEN MATCHED
THEN UPDATE SET *
WHEN NOT MATCHED THEN INSERT *;

select * from product_delta_table order by productCode

标签: apache-sparkdatabricksazure-databricks

解决方案


推荐阅读