使用sqlcontext spark执行sql连接

dsf9zpds  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(374)

这个问题在这里已经有了答案

将sparksession.sql()与jdbc一起使用(1个答案)
两年前关门了。
我试着运行一个查询,用sqlcontext来查询oracle数据库,比如,

val sql="select a from b,c where b.join=c.join"
val dataframe = sqlcontext.read.jdbc(url,sql,connection_properties)

我得到无效的表名错误。不过,如果我尝试像下面这样查询表,它就可以正常工作。

val df1 = sqlcontext.read.jdbc(url,"b",connection_properties)
val df2 = sqlcontext.read.jdbc(url,"c",connection_properties)

不能使用sqlcontext运行连接查询。

5f0d552i

5f0d552i1#

这就是您需要做的,从下面的表中创建两个Dataframe

val df1 = sqlcontext.read.jdbc(url,"b",connection_properties)
val df2 = sqlcontext.read.jdbc(url,"c",connection_properties)

并使用要连接的键连接两个Dataframe

df1.join(df2, <join condition>, <which join>)

//example
df1.join(df2, df1($"id") === df2($"id"), "left")

据我所知,这是一个更好的选择
希望这有帮助!

相关问题