2
は、[*]このスニペットを見てください「フラット化」スパークしません:なぜRDDサポートが
val la = List(Array(2, 3, 5), Array(7, 11, 13))
la.flatten
戻り今
res1: List[Int] = List(2, 3, 5, 7, 11, 13)
を、私はスパークでプレーしてきたと私はつまずい問題が発生したとき
val myRdd: RDD[String] = (sc.textFile("myFilePath", 10) map (_.split("\n"))).flatten
:スニペット:右手側の式は、[*]、私はフラット化は、トリックを行うだろうと思ったタイプRDD[Array[String]]
と同様であるとして
val myRdd: RDD[String] = sc.textFile("myFilePath", 10) map (_.split("\n"))
はコンパイルされません。しかし、RDD
はこの操作を提供していません。ここに私の質問が来る:
flatten
をサポートしていないRDDの背後にある(デザイン)理由は何ですか?- RDDの動作/使用方法に関する重要なポイントがありませんか?
P. 私はちょうど私が
val myRdd: RDD[String] = (sc.textFile("myFilePath", 10) map (_.split("\n"))).flatMap(x => x)
Thx!偉大な発言。問題は私の質問に答えます。それでも「スカラ」はそれを提供するのはなぜですか?私はそれが他の高次関数があるので提供されるべきだと思います。 – GA1
@ GA1 Scalaのコレクションとスパークはさまざまなアイデアを持つチームによって作られていますが、RDDは通常のコレクションとは少し異なります。あなたが関連する問題を読んだら、リンクされた要求を引っ張ってみると、それは試されていることがわかりますが、開発者によれば実装するのは難しく、フラットマップは同じ機能を証明するので本当の利点はないと思います。むしろよりインパクトのあるものにリソースを費やしています。 – puhlen