使用“ INSERT OVERWRITE”更改具有数据块增量的数据捕获

时间:2019-07-02 12:27:31

标签: sql apache-spark hive azure-databricks

我想使用INSERT OVERWRITE来提高性能,而不是删除并选择要加载到Delta表中的数据。 我有几个查询,例如

query1 =“在('{}','{}','{}','{}')中从asl_process.otr WHERE子字符串(Requested_delivery_d,1,6)删除” .format( month_M1,month,month_P1,month_P2);

query2 =“从asl_process.otr中删除子字符串(Requested_delivery_d,1,6)in(从df_otrcurr中选择不同的子字符串(Requested_delivery_d,1,6))

我想总结一下。

我试图用sql语句重写2个查询,例如:

%sql

INSERT OVERWRITE TABLE asl_process.otr
    PARTITION(Ord_Planned_GI_date)
    SELECT * FROM asl_process.otr 
    WHERE substring(`Requested_delivery_d`,1,6) < > ('month_M1', 'month', 'month_P1', 'month_P2')
          AND substring(`Requested_delivery_d`,1,6) < > (select distinct substring(`Requested_delivery_d`,1,6) from df_otrcurr)

问题是出现以下错误: INSERT OVERWRITE中的“ SyntaxError:无效语法”。

我在做什么错?这不喜欢我在表名之前拥有模式吗?。

1 个答案:

答案 0 :(得分:0)

您在插入覆盖查询中提到了2 FROM子句