所以我有一个奇怪的情况。
每当我使用 inner join
语句运行 sqlContext.sql 时,我实际上都会收到一个错误,但是当我阅读错误时,看起来 Spark 在尝试执行 on
语句后已经自动连接了我的两个单独的表。
表1:patient_id、代码
表2:patient_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]
我认为你的程序有错别字。
但是,您可以执行以下操作:
tableOneDF.join(tableTwoDF, tableOneDF("patient_id") === tableTwoDF("patient_id"), "inner").select("code", "date")
而表一DF和表二DF是在两个表之上创建的两个数据帧。
试一试,看看它是否仍然发生。