使用 sqlcontext spark 执行 sql join [重复]
Posted
技术标签:
【中文标题】使用 sqlcontext spark 执行 sql join [重复]【英文标题】:Perform sql join using sqlcontext spark [duplicate] 【发布时间】:2017-07-25 15:31:31 【问题描述】:我尝试运行查询以使用 sqlcontext 之类的连接查询 Oracle db,
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 运行连接查询。
【问题讨论】:
【参考方案1】:这是你需要做的,从下面的表中创建两个数据框
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")
据我所知,我认为这是一个更好的选择
希望这会有所帮助!
【讨论】:
以上是关于使用 sqlcontext spark 执行 sql join [重复]的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 spark(sqlContext) 在 aws redshift 中写入 csv 数据
NoSuchMethodError:org.apache.spark.sql.SQLContext.applySchema
Spark2 中的 SQLContext 没有获取更新的配置单元表记录
sqlContext.read...load() 和 sqlContext.write...save() 代码在 Spark 集群上运行在哪里?