java我们可以在spark sql中启动传统的连接查询吗
假设我有两张桌子,表1和表2
形成的查询如下:select * from table1 inner join table2 on table1.id = table2.id;
现在,当我们通过这段代码加载spark数据库连接时。我们怎么能提到两个表,这样就可以触发连接
参考代码
spark.read().format("jdbc").option("url", "jdbc:mysql://localhost:3306/databasename")
.option("driver", "com.mysql.jdbc.Driver")
.option("dbtable", "table1")
.option("user", "root")
.option("password", "root")
.load().createOrReplaceTempView("table1");
Dataset<Row> sql = spark.sql("select * from table1 inner join table2 on table1.id = table2.id");
我试过上面的代码,但上面写着table2 not found
。因此,上面的查询可以从spark sql启动吗
# 1 楼答案
我明白你的意思
在dbtable选项中,您可以使用查询并加载数据帧
确保查询传递的内容应该与数据库内联
# 2 楼答案
在dbtable选项中,您可以使用查询,但要使用别名并加载数据帧
上述配置将解析为
select * from tmp where 1=0;