タグ付けされた質問 「rdd」


13
Spark-repartition()とcoalesce()
Learning Sparkによると データの再パーティション化はかなりコストのかかる操作であることを覚えておいてください。Sparkには、データの移動を回避できるように最適化されたバージョンのrepartition()呼び出されたバージョンもありcoalesce()ますが、RDDパーティションの数を減らしている場合のみです。 私が得る1つの違いはrepartition()、パーティションの数を増やす/減らすことができるがcoalesce()、パーティションの数を減らすことしかできないということです。 パーティションが複数のマシンに分散してcoalesce()実行されている場合、どのようにしてデータの移動を回避できますか?


2
ScalaとPythonのSparkパフォーマンス
ScalaよりPythonの方が好きです。しかし、SparkはScalaでネイティブに記述されているため、明らかな理由により、コードがPythonバージョンよりもScalaで高速に実行されることを期待していました。 その前提で、1 GBのデータ用の非常に一般的ないくつかの前処理コードのScalaバージョンを学び、書くことを考えました。データはKaggleのSpringLeafコンテストから選択されます。データの概要を説明するだけです(1936のディメンションと145232の行が含まれています)。データは、int、float、string、booleanなどのさまざまなタイプで構成されます。Spark処理には8つのうち6つのコアを使用しています。そのminPartitions=6ため、すべてのコアに処理対象があるように使用しました。 Scalaコード val input = sc.textFile("train.csv", minPartitions=6) val input2 = input.mapPartitionsWithIndex { (idx, iter) => if (idx == 0) iter.drop(1) else iter } val delim1 = "\001" def separateCols(line: String): Array[String] = { val line2 = line.replaceAll("true", "1") val line3 = line2.replaceAll("false", "0") val vals: Array[String] = line3.split(",") …

5
(なぜ)RDDでキャッシュを呼び出すか、永続化する必要があるか
弾力性のある分散データセット(RDD)がテキストファイルまたはコレクション(または別のRDD)から作成された場合、RDDデータをメモリに格納するために「キャッシュ」または「永続化」を明示的に呼び出す必要がありますか?または、RDDデータはデフォルトでメモリに分散して保存されますか? val textFile = sc.textFile("/user/emp.txt") 私の理解では、上記の手順の後、textFileはRDDであり、ノードのメモリのすべてまたは一部で使用できます。 もしそうなら、なぜtextFile RDDで「キャッシュ」または「持続」を呼び出す必要があるのですか?
171 scala  apache-spark  rdd 


3
Apache Spark:マップvs mapPartitions?
RDD mapとmapPartitionsメソッドの違いは何ですか?そして、のようにflatMap動作しますか?ありがとう。mapmapPartitions (編集)つまり、(意味的にまたは実行に関して)違いは何ですか def map[A, B](rdd: RDD[A], fn: (A => B)) (implicit a: Manifest[A], b: Manifest[B]): RDD[B] = { rdd.mapPartitions({ iter: Iterator[A] => for (i <- iter) yield fn(i) }, preservesPartitioning = true) } そして: def map[A, B](rdd: RDD[A], fn: (A => B)) (implicit a: Manifest[A], b: Manifest[B]): RDD[B] = …


3
HashPartitionerはどのように機能しますか?
のドキュメントを読みましたHashPartitioner。残念ながら、API呼び出し以外は何も説明されていませんでした。私はHashPartitioner、キーのハッシュに基づいて分散セットを分割することを前提としています。たとえば、私のデータが次のような場合 (1,1), (1,2), (1,3), (2,1), (2,2), (2,3) したがって、パーティショナーはこれを異なるパーティションに配置し、同じキーが同じパーティションに分類されます。しかし、コンストラクター引数の意味がわかりません new HashPartitoner(numPartitions) //What does numPartitions do? 上記のデータセットの場合、私が行った場合、結果はどのように異なりますか new HashPartitoner(1) new HashPartitoner(2) new HashPartitoner(10) では、HashPartitioner実際にはどのように機能しますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.