ich zwei Datenrahmen hava, ist die Anzahl von zwei Datenrahmen gleich, ich will in zwei Datenrahmen die Summe der einzelnen Werte erhalten diese eingegeben wird:Wie in Funken zwei dataframe'value mit scala berechnen
+---+ and +---+
|df1| |df2|
+---+ +---+
| 11| | 1|
| 12| | 2|
| 13| | 3|
| 14| | 4|
| 15| | 5|
| 16| | 6|
| 17| | 7|
| 18| | 8|
| 19| | 9|
| 20| | 10|
+---+ +---+
dies ist mein Code:
val df1 = sc.parallelize(1 to 10,2).toDF("df1")
val df2 = sc.parallelize(11 to 20,2).toDF("df2")
val df3=df1.rdd.zip(df2.rdd).map(x=>{
x._1.getInt(0)+x._2.getInt(0)
}).toDF("result")
df3.show()
das Ergebnis:
ich cha haben nge Datenframe zu rdd dann zip zwei rdd, wie man zwei Datenframe mit nicht zu rdd transformieren?
Gibt es einen effizienteren Weg, dies zu tun? – mentongwu
Fenster wird Partition ändern, wenn ich Fenster verwenden muss ich neu partitionieren, wenn ich es berechnet – mentongwu
Yes Window-Funktion wird definitiv Partition ändern. Wenn Sie nicht alle Ihre Daten in einer Partition zusammenfassen, wie würden Sie sicherstellen, dass 11 von df2 und 1 von df1 auf demselben Executor sind. Wir können nicht zwei Datenrahmen verbinden, ohne sicherzustellen, dass sich alle Partitionen auf demselben Executor befinden. Ihre Anforderung ist so. –