以下方法将起作用
import spark.implicits._
val t1 = Seq((1,1),(1,1),(1,3),(2,5),(3,1),(3,2),(3,3))
val t2 = Seq((1,"A"),(2,"B"),(3,"C"),(4,"D"),(5,"E"),(6,"F"),(7,"G"))
val tt1 = sc.parallelize(t1).toDF("id1","id2")
.persist(StorageLevel.MEMORY_AND_DISK)
val tt2 = sc.parallelize(t2).toDF("id", "obj")
.persist(StorageLevel.MEMORY_AND_DISK)
tt1.show()
tt2.show()
tt1.createOrReplaceTempView("table1")
tt2.createOrReplaceTempView("table2")
val output = sqlContext.sql(
"""
|SELECT DISTINCT id, obj
|FROM table1 t1
|JOIN table2 t2 ON(t1.id1 = t2.id) OR (t1.id2 = id)
|ORDER BY id
|""".stripMargin).persist(StorageLevel.MEMORY_AND_DISK)
output.show()