2017-03-14 3 views
1

Ich möchte zwei Datenrahmen a und b in einem Datenfeld c kombinieren, die nach einer Spalte sortiert ist.So kombinieren Sie zwei Funken Datenrahmen in sortierter Reihenfolge

val a = Seq(("a", 1), ("c", 2), ("e", 3)).toDF("char", "num") 
val b = Seq(("b", 4), ("d", 5)).toDF("char", "num") 
val c = // how do I sort on char column? 

Hier ist das Ergebnis, das ich will:

a.show()  b.show()  c.show() 
+----+---+ +----+---+ +----+---+ 
|char|num| |char|num| |char|num| 
+----+---+ +----+---+ +----+---+ 
| a| 1| | b| 4| | a| 1| 
| c| 2| | d| 5| | b| 4| 
| e| 3| +----+---+ | c| 2| 
+----+---+     | d| 5| 
          | e| 3| 
          +----+---+ 

Antwort

2

In einfachen, Sie sort() auf jeden Datenrahmen und union() verwenden können.

val a = Seq(("a", 1), ("c", 2), ("e", 3)).toDF("char", "num").sort($"char") 
val b = Seq(("b", 4), ("d", 5)).toDF("char", "num").sort($"char") 

val c = a.union(b).sort($"char") 
+0

Wow, das war einfach. Vielen Dank. –

Verwandte Themen