ホームページ >バックエンド開発 >Python チュートリアル >Python PySpark を使用して大規模なデータセットを処理する

Python PySpark を使用して大規模なデータセットを処理する

WBOY
WBOY転載
2023-08-29 09:09:08733ブラウズ

使用Python PySpark处理大型数据集

このチュートリアルでは、大規模なデータ セットを処理するための Python と PySpark の強力な組み合わせについて説明します。 PySpark は、高速かつ多用途のクラスター コンピューティング システムである Apache Spark へのインターフェイスを提供する Python ライブラリです。 PySpark を活用することで、一連のマシン間でデータを効率的に分散して処理できるため、大規模なデータ セットを簡単に処理できるようになります。

この記事では、PySpark の基礎を詳しく説明し、大規模なデータセットに対してさまざまなデータ処理タスクを実行する方法を示します。 RDD (Resilient Distributed Datasets) やデータ フレームなどの主要な概念を取り上げ、それらの実際の応用例をステップバイステップの例で示します。このチュートリアルを学習すると、PySpark を効果的に使用して大規模なデータ セットを処理および分析する方法をしっかりと理解できるようになります。

セクション 1: PySpark の概要

中国語訳は次のとおりです:

パート 1: PySpark の概要

このセクションでは、開発環境をセットアップし、PySpark の基本概念を理解します。 PySpark のインストール、SparkSession の初期化、RDD と DataFrame へのデータのロード方法について説明します。 PySpark のインストールを開始しましょう:

リーリー ###出力### リーリー

PySpark をインストールした後、SparkSession を初期化して Spark クラスターに接続できます。 リーリー

SparkSession の準備ができたら、RDD または DataFrame にデータをロードできるようになります。 RDD は PySpark の基本的なデータ構造であり、要素の分散コレクションを提供します。一方、DataFrame は、リレーショナル データベースのテーブルと同様に、データを名前付き列に編成します。 CSV ファイルを DataFrame にロードしましょう:

リーリー ###出力### リーリー

上記のコード スニペットからわかるように、`read.csv()` メソッドを使用して CSV ファイルをデータ フレームに読み取ります。 「header=True」パラメータは、最初の行に列名が含まれていることを意味し、「inferSchema=True」は各列のデータ型を自動的に推測します。

パート 2: データの変換と分析

このセクションでは、PySpark を使用したさまざまなデータ変換および分析手法を検討します。データセットのフィルタリング、集計、結合などの操作について説明します。まず、特定の基準に基づいてデータをフィルタリングしましょう:

リーリー ###出力### リーリー

上記のコード スニペットでは、`filter()` メソッドを使用して、「年齢」列が 30 を超える行を選択します。この操作により、大規模なデータ セットから関連するサブセットを抽出できます。

次に、「groupBy()」メソッドと「agg()」メソッドを使用してデータセットの集計を実行しましょう。

リーリー ###出力### リーリー

ここでは、データを「性別」列でグループ化し、各グループの平均給与と最高年齢を計算します。結果として得られる「aggreated_data」データ フレームは、データセットに関する貴重な洞察を提供します。

PySpark を使用すると、フィルタリングと集計に加えて、複数のデータ セットを効率的に結合することもできます。 「df1」と「df2」という 2 つの DataFrame がある例を考えてみましょう。共通の列に基づいてそれらを結合できます:

リーリー ###出力### リーリー

`join()` メソッドを使用すると、`on` パラメータで指定された共通の列に基づいて DataFrame を結合できます。ニーズに応じて、「内側」、「外側」、「左」、「右」など、さまざまな接続タイプを選択できます。

パート 3: 高度な PySpark テクノロジー

このセクションでは、データ処理機能をさらに強化するための高度な PySpark テクノロジーを検討します。ユーザー定義関数 (UDF)、ウィンドウ関数、キャッシュなどのトピックについて説明します。 UDF を定義して使用することから始めましょう:

リーリー ###出力### リーリー

上記のコード スニペットでは、指定された入力を 2 乗するために使用される `square()` という名前の単純な UDF 関数を定義します。次に、「udf()」関数を使用してこの UDF を登録し、それを「age」列に適用して、DataFrame に「age_squared」という新しい列を作成します。

PySpark は、特定のウィンドウ範囲内で計算を実行できる強力なウィンドウ関数も提供します。前後の行を考慮して各従業員の平均給与を計算してみましょう:

リーリー ###出力### リーリー

上記のコード抜粋では、「Window.orderBy()」メソッドを使用して、「id」列に基づいて行の順序を指定するウィンドウを定義します。次に、「lag()」関数と「lead()」関数を使用して、それぞれ前と次の行にアクセスします。最後に、現在の行とその隣接行を考慮して平均給与を計算します。

最後に、キャッシュは、反復アルゴリズムまたは反復計算のパフォーマンスを向上させるための PySpark の重要なテクノロジです。 `cache()` メソッドを使用して、DataFrame または RDD をメモリにキャッシュできます:

リーリー

キャッシュには出力は表示されませんが、データはメモリに保存されるため、キャッシュされた DataFrame に依存する後続の操作は高速になります。

###結論は###

このチュートリアルでは、Python で大規模なデータ セットを処理するための PySpark の能力を検討しました。まず開発環境をセットアップし、データを RDD と DataFrame にロードしました。次に、データセットのフィルタリング、集計、結合などのデータ変換および分析手法を詳しく掘り下げました。最後に、ユーザー定義関数、ウィンドウ関数、キャッシュなどの高度な PySpark テクニックについて説明します。

以上がPython PySpark を使用して大規模なデータセットを処理するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。