S3でORC形式の2つの異なるデータセットを読み込むためにspark sqlを使用しています。しかし、ほぼ同じサイズのデータセットでは、読み込みのパフォーマンスの差が大きくなります。同じサイズで行の長さが異なると、パフォーマンスの違いがスパークで読み取られる
データセット1:50列と2.12億レコードそれぞれを含み、S3バケット内のORC形式で15ギガバイトまでの合計。
データセット2:150列と2900万レコードそれぞれが含まれており、同じS3バケット内のORC形式で15ギガバイトまでの合計。
データセット1は、2分を取得し、spark sqlを使用して読み取ります。同じインフラストラクチャ内で同じスパーク読み取り/カウントジョブを使用してデータセット2を読み取るには、12分を使用します。
各行の長さによってこの大きな違いが生じる可能性があります。誰も私がこれらのデータセットを読む際にパフォーマンスの大きな違いがある理由を理解するのを助けることができますか? (とないアマゾンEMR &それはS3です://クライアント)クライアント: それは(どのくらいの追求についてです)仕事が起こっていると、クライアントはランダムIOについて巧妙されているかどうかをされますが、S3Aを使用していると仮定すると、
私はAmazon EMRとそのs3クライアントを使用しています。パフォーマンスをテストすることはできますか?注:データセット1ではファイル数が多いです(データセット2では300に対して220)。 –
ファイルの数よりもスキップ量が多いと思われますが、ファイルをさらに分割することはできます。パフォーマンスをテストするには?おそらくHadoop 2.8のインストールでローカルに起動し、 "ユーザ提供のJAR" https://spark.apache.org/downloads.htmlで起動してください。VMにスティックして、2番目のデータセットに対してオンエアをオンにします。その他の戦略。ローカルですべてダウンロードし、ベンチマークになる可能性があるfile://でperfを比較してください。 –