Skip to Content
Sparkによるデータアルゴリズム
book

Sparkによるデータアルゴリズム

by Mahmoud Parsian
March 2025
Intermediate to advanced
438 pages
6h 47m
Japanese
O'Reilly Media, Inc.
Content preview from Sparkによるデータアルゴリズム

第5章. データのパーティション分割

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

パーティショニングとは、"分割する行為。"分割する、または分離する境界を作ることによって分離すること "と定義されている。データのパーティション分割は、Spark、Amazon Athena、Google BigQueryのようなツールで、クエリの実行パフォーマンスを向上させるために使われている。ビッグデータ・ソリューションをスケールアウトするために、データのパーティション分割が行われ、別々に管理、アクセス、並列実行が可能になる。

本書の前の章で説明したように、Sparkはデータをパーティション分割と呼ばれる小さな塊に分割し、ワーカーノードのエクゼキュータを使ってこれらのパーティションを並列処理する(多くのパーティションを同時に処理できる)。例えば、入力が1,000億レコードある場合、Sparkはそれを10,000のパーティションに分割し、各パーティションは約1,000万の要素を持つことになる:

  • 合計記録100,000,000,000

  • パーティション数10,000

  • パーティションあたりの要素数:10,000,000

  • 可能な最大並列度:10,000

デフォルトでは、Sparkは、JavaのObject.hashCode() 関数を使用するHashPartitioner 、ハッシュベースのパーティショニングを実装している。

データのパーティション分割は、管理性とスケーラビリティを向上させ、競合を減らし、パフォーマンスを最適化することができる。世界各国(7大陸、195カ国)の都市の1時間ごとの気温データを持っていて、特定の大陸、国、または国のセットのデータをクエリして分析することが目的だとする。もしデータのパーティション分割を適切に行わなければ、クエリごとに、データセット全体を読み込み、読み取り、マッパーとリデューサーを適用して、求めている結果を得なければならない。ほとんどのクエリでは、実際に必要なのはデータのサブセットだけなので、これはあまり効率的ではない。もっと速い方法は、必要なデータだけをロードすることだ。

Sparkにおけるデータのパーティション分割は、主にタスクが独立して実行できるようにする並列化の目的で行われるが、Amazon AthenaやGoogle BigQueryなどのクエリツールでは、データセット全体ではなくデータのスライスを分析できるようにする目的で行われる。PySparkではDataFramesをカラム名で物理的に分割するのが非常に簡単なので、これらのツールは効率的にクエリを実行できる。

パーティション入門

データのパーティション分割を行うことで、各クエリがスキャンするデータ量を制限することができ、パフォーマンスを向上させ、コストを削減することができる。例えば、データのパーティション分割にSparkとHiveを活用しているAmazon Athenaでは、任意のキーでデータを分割することができる(BigQueryも同じ機能を提供している)。そのため、先ほどの天気データの例では、すべての国のデータセットを使用するのではなく、特定のフォルダを選択してクエリに使用することができる。

データがSpark DataFrameのようなテーブルで表現されている場合、パーティション分割はそのテーブルを特定のカラムの値に基づいて関連する部分に分割する方法である。パーティショニングは、1つまたは複数の列(これらの列はパーティション・キーと呼ばれる)に基づいて行うことができる。これらのパーティショニングされたカラムの値は、各行がどのパーティションに格納されるべきかを決定するために使われる。パーティションを分割することで、分析のためにデータセット全体をロードするのではなく、データのスライスに対してクエリを実行することが容易になる。例えば、ゲノミクスのデータレコードには合計25本の染色体が含まれ、それらは ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

メダリオンアーキテクチャの構築

メダリオンアーキテクチャの構築

Piethein Strengholt

Publisher Resources

ISBN: 9798341635302