2017-09-11 7 views
-2

私のdf1にはDouble型の列があり、df2にはTimestamp型の列があり、df3にはInteger型の列があります。RDDに変換せずに異なる列名とタイプのスパークで複数のデータフレームを結合する方法

df1 = ... 
df2 = ... 
df3 = ... 
val df4 = df1.zip(df2).zip(df3) 

しかし「ジップ」のようなそのような機能はありません。

私はこのような何かを達成しようとしています。そのような結果をどのようにアーカイブすることができますか?

+0

何を試しましたか?ドキュメントやIDEで必要な機能を見つけるのに1分です。 –

+0

[ScalaとApache Sparkで2つのデータフレームを結合するにはどうすればいいですか?](https://stackoverflow.com/questions/36800174/how-to-join- –

+0

「可能な重複」は必ずしも重複しているとは限りません。だからこそあなたは近い投票についての情報を持っていて、なぜそれが重複ではないと言うことができるのですか –

答えて

0

DataFramesの明示的なジップはありません。あなたは回避策を行うことができます:ウィンドウの操作にはpartitionByがないので、それは、非常に遅くなりますが

val df1Ordered = df1.withColumn("rowNr", row_number().over(Window.orderBy('someColumn)); 
// the same for other DataFrames 
// now join those DataFrames 

val newDF = df1Ordered.join(df2Ordered, "rowNr").join("df3Ordered", "rowNr") 

+0

あなたの提案をありがとう、しかし、私はすでに私のリストには何も動作しない場合は、この回避策があります。 –

+0

なぜ投票が遅れますか?それはうまくいくだろう、作者はそれを言った。それは遅いですが、私もそれを書いた –

+0

それは私ではない、多分私の質問をd​​ownvotedした人は、これをしました。 –

関連する問題