使用join访问属性会引发异常

时间:2019-04-09 17:01:12

标签: apache-spark-sql databricks

我正在处理数据块中的批处理,自3 DAYSS起,我遇到了一个SQL查询,该查询抛出异常org.apache.spark.sql.AnalysisException:给定输入列,无法解析'c.aggregates.count'< / p>

基本上我有两个对象

telemetries = 
{ 
  "id": "16396985-7bc2-44fb-9904-be8ea62ec48f",
  "aggregates": 
  {
    "count": 4
  },
}

dataInCosmosDb = 
{ 
  "id": "16396985-7bc2-44fb-9904-be8ea62ec48f",
  "aggregates": 
  {
    "count": 6
  },
}

这是我的SQL查询

select id, 
struct(CASE WHEN isnull(c.id) THEN t.aggregates.count ELSE (t.aggregates.count + c.aggregates.count) END as count) as aggregates
from telemetries t
left join dataInCosmosDb c on 
t.id = c.id

最后我应该有这个对象

queryResult= 
{ 
  "id": "16396985-7bc2-44fb-9904-be8ea62ec48f",
  "aggregates": 
  {
    "count": 10
  },
}

当我的cosmosDb有一个具有相同ID的现有记录时,此功能很好,但是当cosmosDb为空时,它将引发异常:“无法解析给定的输入列'c.aggregates.count'”

我不明白为什么,因为当c.id为null时,它不应该进入其他部分!

我将不胜感激,在此先感谢您!

0 个答案:

没有答案