-4
我必須連接兩個表並將col3保留在table1中,並且如果table1中不存在數據但存在於table2中,則可以這樣做。使用spark和scala從兩個表中提取所需的信息
表1
col1 col2 col3
,,,, ,,,, ,,,,
a p d
b q e
c r f
d s g
表2
col1 col2 col3
,,,, ,,,, ,,,,
a m s
e q l
所需輸出
col1 col2 col3
,,,, ,,,, ,,,,
a m d
b q e
c r f
d s g
e q l
我嘗試下面的代碼
import org.apache.spark.sql.{Row, SQLContext}
import org.apache.spark.{SparkConf, SparkContext}
object Tasktr {
def main(args: Array[String]): Unit = {
val sparkConf = new SparkConf().setAppName("Myapp").setMaster("local[2]")
val sc = new SparkContext(sparkConf)
val sqlContext = new SQLContext(sc)
val df1 = sqlContext.read.format("com.databricks.spark.csv").option("header", "true").load("/home/magnetto/Desktop/ip.csv")
val df2= sqlContext.read.format("com.databricks.spark.csv").option("header", "true").load("/home/magnetto/Desktop/del.csv")
df1.registerTempTable("tab1")
df2.registerTempTable("tab2")
val df3=sqlContext.sql("select * from tab1 FULL OUTER JOIN tab2 ON tab1.val1=tab2.val1").show()
我得到了下面的輸出
val1|val2|val3|val1|val2|val3|
+----+----+----+----+----+----+
| k1| l1| a|null|null|null|
| k2| l2| b|null|null|null|
| k3| l3| c|null|null|null|
| k4| l4| d| k4| l4| e|
|null|null|null| k5| l9| f|
+----+----+----+----+----+----+
我已經試過全外連接的兩個表,但無法獲得所需要的輸出。
發佈您的代碼,並輸出想要 – Travis
我用上面的代碼 –