2017-10-25 6 views
2

s3には30GBのORCファイル(24パーツ* 1.3G)があります。私はこのorcを読んでいくつかの操作を行うためにsparkを使用しています。しかし、私が観察したログからは、操作を行う前でさえ、スパークはs3 (全ファイルを読むのに12分かかります)から24部すべてを開いて読んでいます。。しかし、ここで私の懸念は、このすべての読み取り操作は、ドライバとエグゼキュータのすべてがアイドルであるが現時点ではであることです。エグゼクティブではないドライバのspark reading orcファイル

誰かがなぜ私のことを説明できますか?私もすべてのエグゼクティブを読書に利用できる方法はありますか?

同じことが寄木細工にも適用されますか?

ありがとうございます。

+0

問題がいくつか発生する可能性があります。コードを投稿してください。 –

答えて

2

あなたのデータのスキーマを提供することがありますか?

そうでない場合、Sparkはすべてのファイルのスキーマを取得しようとし、実行を続けます。

2

ORCとParquetの両方で、ファイルのフッターのサマリーデータをチェックできます。また、s3クライアントとその設定によっては、非常に非効率なIOが発生することがあります。このである可能性があります。

s3a://コネクタとその下にあるHadoop 2.8+のJARを使用している場合は、円柱データのパフォーマンスを最大限にするために必要なランダムIOを特定し、他のものを調整することができます。

val OPTIONS = Map( "spark.hadoop.fs.s3a.experimental.fadvise" => "random" "spark.hadoop.orc.splits.include.file.footer" -> "true", "spark.hadoop.orc.cache.stripe.details.size" -> "1000", "spark.hadoop.orc.filterPushdown" -> "true" "spark.sql.parquet.mergeSchema" -> "false", "spark.sql.parquet.filterPushdown" -> "true" )

関連する問題