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

Hive 除命令在databrick sql(spark sql)中不起作用外,hive,hiveql,databricks,azure-databricks,databricks-connect,Hive,Hiveql,Databricks,Azure Databricks,Databricks Connect,我写这个查询是为了从databricks笔记本的两个配置单元表中获得记录的差异。我试图得到结果,因为我们在mssql ie中得到的只是结果集的差异 选择PreqinContactID、PreqinContactName、PreqinPersonTitle、电子邮件、城市 来自preqin_7dec.preqin联系人,其中filename='InvestorContactPD.csv' 除了 选择联系人ID、姓名、职务、电子邮件、城市 来自preqinct.InvestorContactPD,其

我写这个查询是为了从databricks笔记本的两个配置单元表中获得记录的差异。我试图得到结果,因为我们在mssql ie中得到的只是结果集的差异

选择PreqinContactID、PreqinContactName、PreqinPersonTitle、电子邮件、城市 来自preqin_7dec.preqin联系人,其中filename='InvestorContactPD.csv' 除了 选择联系人ID、姓名、职务、电子邮件、城市 来自preqinct.InvestorContactPD,其中联系人id为 从preqin_7dec.preqin Contact中选择preqin ContactId 其中filename='InvestorContactPD.csv' 但是返回的结果集也有匹配的记录。我上面显示的记录是在结果集中出现的,但是当我根据联系人id单独检查时,它是相同的。因此我不确定为什么except也返回匹配的记录

只是想知道如何使用sql在databrick笔记本中使用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函数应用于所有列,例如


关于@AvinashSingh的任何更新?对于列名,我们是否需要使用别名保持相同的列名。或者我们可以保留任何具有正确顺序的内容。例如-从表A中选择contactid、名称,但从表B中选择idno、clientname除外;它能工作吗?列名不需要相同。是的,我标记了它。