我尝试使用sqlcontext(
)运行查询以查询带有连接的Oracle数据库val sql="select a from b,c where b.join=c.join"
val dataframe = sqlcontext.read.jdbc(url,sql,connection_properties)
我收到无效的tablename错误。 但是,如果我尝试查询下面的表格,它可以正常工作。
val df1 = sqlcontext.read.jdbc(url,"b",connection_properties)
val df2 = sqlcontext.read.jdbc(url,"c",connection_properties)
是否无法使用sqlcontext运行连接查询。
答案 0 :(得分:2)
这是您需要做的,从表中创建两个数据帧,如下所示
val df1 = sqlcontext.read.jdbc(url,"b",connection_properties)
val df2 = sqlcontext.read.jdbc(url,"c",connection_properties)
并使用您要加入的密钥加入两个数据框
df1.join(df2, <join condition>, <which join>)
//example
df1.join(df2, df1($"id") === df2($"id"), "left")
据我所知,我认为这是一个更好的选择
希望这有帮助!