2017-07-18 32 views
0

我有如下合併多個數據集的單集沒有阿帕奇火花SQL中使用unionAll功能

Dataset 1: 

+----------+--------------------+---------+---+ 
|  Time|    address|  Date|value|sample 
+----------+--------------------+---------+---+------+ 
|8:00:00 AM| AAbbbbbbbbbbbbbbbb|12/9/2014| 1 |0 | 
|8:31:27 AM| AAbbbbbbbbbbbbbbbb|12/9/2014| 1 |0 | 
+----------+--------------------+---------+---+------+ 

Dataset 2: 


|  Time|   Location|  Date|sample|value 
+-----------+--------------------+---------+------+------+ 
| 8:45:00 AM| AAbbbbbbbbbbbbbbbb|12/9/2016|  5 | 0 | 
| 9:15:00 AM| AAbbbbbbbbbbbbbbbb|12/9/2016|  5 | 0 | 
+-----------+--------------------+---------+------+------+ 

我使用follwoing unionAll()函數機器人DS1和DS2結合自己的數據集,

Dataset<Row> joined = dataset1.unionAll(dataset2).distinct(); 

有沒有更好的方法來組合這個ds1和ds2,因爲unionAll()函數在spark 2.x.中被棄用了?

+0

只使用'union()',它會默認刪除重複記錄。 – mtoto

回答

1

您可以使用union()兩個dataframes /數據集

結合
df1.union(df2) 

輸出:

+----------+------------------+---------+-----+------+ 
|  Time|   address|  Date|value|sample| 
+----------+------------------+---------+-----+------+ 
|8:00:00 AM|AAbbbbbbbbbbbbbbbb|12/9/2014| 1|  0| 
|8:31:27 AM|AAbbbbbbbbbbbbbbbb|12/9/2014| 1|  0| 
|8:45:00 AM|AAbbbbbbbbbbbbbbbb|12/9/2016| 5|  0| 
|9:15:00 AM|AAbbbbbbbbbbbbbbbb|12/9/2016| 5|  0| 
+----------+------------------+---------+-----+------+ 

它也消除了重複的行

希望這有助於!

+0

已在評論中提及。 – mtoto

+0

@mtoto '+ ---------- + ------------------ + --------- + ---- - + ------ + ------ + -------- + |時間|地址|日期|值|樣本| + ---------- + ------------------ + --------- + ----- + - ---- + | 8:00:00 AM | AAbbbbbbbbbbbbbbbb | 12/9/2014 | 0 | 1 | | 8:31:27 AM | AAbbbbbbbbbbbbbbbb | 12/9/2014 | 0 | 1 | | 8:45:00 AM | AAbbbbbbbbbbbbbbbb | 12/9/2016 | 5 | 0 | | 9:15:00 AM | AAbbbbbbbbbbbbbbbb | 12/9/2016 | 5 | 0 | + ---------- + ------------------ + --------- + ----- + - ---- + ------ + -------- +' 聯合數據集輸出在值列自身中同時具有值​​列和樣本列值。 – sathiyarajan

+0

@shankarkoirala:像魅力一樣工作,謝謝 – sathiyarajan

相關問題