1
たとえば、Scala RDD
が10000個の要素で構成されている場合、各要素を1つずつ取り上げて処理したいと考えています。それ、どうやったら出来るの?私はtake(i).drop(i-1)
を使用しようとしましたが、それは非常に時間がかかります。あなたがコメントで言ったことによるRDDを効率的にトラバースする方法
たとえば、Scala RDD
が10000個の要素で構成されている場合、各要素を1つずつ取り上げて処理したいと考えています。それ、どうやったら出来るの?私はtake(i).drop(i-1)
を使用しようとしましたが、それは非常に時間がかかります。あなたがコメントで言ったことによるRDDを効率的にトラバースする方法
:
yourRDD.map(tuple => tuple._2.map(elem => doSomething(elem)))
最初map
は、それは私が変数tuple
と呼ばれる理由は、その後、すべてのtuple
のために、我々は第二を取得している、あなたのRDD
の内部タプルを反復します要素._2
とmap
を適用してIterable
のすべての要素を繰り返します。これは変数elem
を呼び出した理由です。 doSomething()
は、各要素に適用する任意のランダム関数です。
'RDD'や' foreach'で 'map'を使ってみませんか? – meucaa
私はスカラを使用します。 exeampeの場合、私のrdd型はorg.apache.spark.rdd.RDDです。(String、Iterable [(String、String、String、String)])]、私はちょうどすべての要素を取得してから別の処理をしたいだけです。 –
'' Tuple(String、Iterable [(String、String、String、String)]) 'または' Iterable'を使って反復したいですか? – meucaa