繁体   English   中英

除了命令在databrick sql(spark sql)中不起作用

[英]Except command not working in databrick sql (spark sql)

我已经写了这个除了查询来从databricks笔记本的hive表中获取记录的差异。(我试图在mssql中得到结果,即只有结果集的差异)

select PreqinContactID,PreqinContactName,PreqinPersonTitle,EMail,City 
  from preqin_7dec.PreqinContact where filename='InvestorContactPD.csv'
except
  select CONTACT_ID,NAME,JOB_TITLE,EMAIL,CITY 
  from preqinct.InvestorContactPD where contact_id in (
    select PreqinContactID from preqin_7dec.PreqinContact 
    where filename='InvestorContactPD.csv')

在此处输入图像描述

但是返回的结果集也有匹配的记录。我上面显示的记录是在结果集中但是当我根据contact_id单独检查它时它是相同的。所以我不知道为什么除了返回匹配的记录。

只是想知道我们如何通过使用 sql 在 databrick 笔记本中使用 except 或任何差异查找命令。

如果源数据和目标数据相同,我不想在结果集中看到任何内容。

EXCEPT在 Databricks 中运行良好,因为这个简单的测试将显示:

val df = Seq((3445256, "Avinash Singh", "Chief Manager", "asingh@gmail.com", "Mumbai"))
  .toDF("contact_id", "name", "job_title", "email", "city")


// Save the dataframe to a temp view
df.createOrReplaceTempView("tmp")
df.show

SQL 测试:

%sql
SELECT *
FROM tmp
EXCEPT 
SELECT *
FROM tmp;

此查询不会产生任何结果。 例如,您是否可能有一些前导或尾随空格? Spark 也区分大小写,因此也可能导致您的问题。 通过将LOWER function 应用于所有列来尝试不区分大小写的测试,例如

结果

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM