我正在尝试join
两个dataframes
来自数据库Cassandra的火花。
val table1=cc.sql("select * from test123").as("table1")
val table2=cc.sql("select * from test1234").as("table2")
table1.join(table2, table1("table1.id") === table2("table2.id1"), "inner")
.select("table1.name", "table2.name1")
我得到的结果是empty
。
答案 0 :(得分:0)
如果您不确定此处的join语法,可以尝试纯SQL方式。
table1.registerTempTable("tbl1")
table2.registerTempTable("tbl2")
val table3 = sqlContext.sql("Select tbl1.name, tbl2.name FROM tbl1 INNER JOIN tbl2 on tbl1.id=tbl2.id")
此外,你应该看到,如果table1和table2,首先确实有相同的id来进行连接。
更新: -
import org.apache.spark.sql.SQLContext
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
理想情况下,是的,csc也应该有效。 你应该参考http://spark.apache.org/docs/latest/sql-programming-guide.html
答案 1 :(得分:0)
首先将数据帧和之后的数据帧合并为临时表