Apache Spark SQL:自动内连接?
Posted
技术标签:
【中文标题】Apache Spark SQL:自动内连接?【英文标题】:Apache Spark SQL: Automatic Inner Join? 【发布时间】: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]
【问题讨论】:
你能把错误信息也贴出来吗? 更新错误信息 你能把代码贴出来吗?我们也许可以帮助您... 【参考方案1】:我认为你的程序中有错字。
但是,您可以执行以下操作:
tableOneDF.join(tableTwoDF, tableOneDF("patient_id") === tableTwoDF("patient_id"), "inner").select("code", "date")
而 tableOneDF 和 tableTwoDF 是在两个表之上创建的两个数据框。
尝试一下,看看它是否仍然会发生。
【讨论】:
是的,我找到了,谢谢。列名略有不匹配,但这是多么奇怪的错误...以上是关于Apache Spark SQL:自动内连接?的主要内容,如果未能解决你的问题,请参考以下文章
从 Docker 容器内连接到 SQL Server Express 会导致评估密码时出错
两个 Spark DataFrame 的简单连接因“org.apache.spark.sql.AnalysisException:无法解析列名”而失败