【问题标题】:Apache Spark SQL: Automatic Inner Join?Apache Spark SQL:自动内连接?
【发布时间】:2016-02-22 22:39:11
【问题描述】:

所以我遇到了一个奇怪的情况。

每当我使用 inner join 语句运行 sqlContext.sql 时,我实际上会收到一个错误,但是当我阅读该错误时,看起来 Spark 在尝试执行 on 时已经自动加入了我的两个单独的表声明。

表 1: 患者编号,代码

表2: 患者 ID,日期

Select code, date
from Table1
inner join Table2
on Table1.patient_id = Table2.patient_id <- exception shows the table is joined already by this point.

对这种行为有什么想法吗?

错误看起来像这样

org.apache.spark.sql.AnalysisException: cannot resolve 'Table2.patient_id' given input columns [patient_id, code, date]

【问题讨论】:

  • 你能把错误信息也贴出来吗?
  • 更新错误信息
  • 你能把代码贴出来吗?我们也许可以帮助您...

标签: join apache-spark apache-spark-sql


【解决方案1】:

我认为你的程序中有错字。

但是,您可以执行以下操作:

tableOneDF.join(tableTwoDF, tableOneDF("patient_id") === tableTwoDF("patient_id"), "inner").select("code", "date") 

而 tableOneDF 和 tableTwoDF 是在两个表之上创建的两个数据框。

尝试一下,看看它是否仍然会发生。

【讨论】:

  • 是的,我找到了,谢谢。列名略有不匹配,但这是多么奇怪的错误...
猜你喜欢
  • 1970-01-01
  • 2021-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-01
  • 2018-12-18
  • 2015-06-28
  • 2015-10-05
相关资源
最近更新 更多