2017-07-18 31 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

相关问题