機械学習の実践: Spark と Python を組み合わせるには?

機械学習の実践: Spark と Python を組み合わせるには?

Apache Sparkはビッグデータの処理や活用に最も広く使われているフレームワークの一つであり、Pythonはデータ分析や機械学習などの分野で最も広く使われているプログラミング言語の一つです。より強力な機械学習機能を手に入れたいなら、Spark と Python を一緒に使ってみてはいかがでしょうか?

海外では、Apache Spark 開発者の平均年収は 11 万ドルです。この業界で Spark が広く使用されていることは間違いありません。 Python は、豊富なライブラリを備えているため、ほとんどのデータ サイエンティストや分析の専門家にも使用されています。両者の統合はそれほど難しくありません。Spark は、Java に非常によく似た言語である Scala で開発されています。 Spark ビッグデータ処理用にプログラム コードを JVM バイトコードにコンパイルします。 Spark と Python を統合するために、Apache Spark コミュニティは PySpark をリリースしました。

Apache Spark は、Apache Software Foundation によって開発された、リアルタイム処理用のオープン ソース クラスター コンピューティング フレームワークです。 Spark は、暗黙的なデータ並列性とフォールト トレランスを備えたクラスター全体をプログラミングするためのインターフェイスを提供します。

他のフレームワークに比べて優れている Apache Spark の機能をいくつか紹介します。

  • 速度: 従来の大規模データ処理フレームワークよりも 100 倍高速です。
  • 強力なキャッシュ: シンプルなプログラミング レイヤーにより、強力なキャッシュ機能とディスク永続化機能が提供されます。
  • デプロイメント: Mesos、Yarn、または Spark 独自のクラスター マネージャーを介してデプロイできます。
  • リアルタイム: インメモリ コンピューティング、リアルタイム コンピューティング、低レイテンシ。
  • ポリグロット: Scala、Java、Python、R でプログラミングできるため、これはこのフレームワークの最も重要な機能の 1 つです。

Spark は Scala で設計されており、Python よりも 10 倍高速ですが、Scala の速度の利点は、使用されるコアの数が少ない場合にのみ現れます。最近のほとんどの分析と処理には多数のコアが必要なので、Scala のパフォーマンス上の利点はそれほど大きくありません。

プログラマーにとって、Python は豊富な構文と標準ライブラリを備えているため、比較的簡単に学習できます。さらに、RDD は動的型付け言語であるため、複数のタイプのオブジェクトを保持できます。

Scala には SparkMLlib がありますが、機械学習や NLP を実装するためのライブラリやツールが十分にありません。さらに、Scala にはデータの視覚化機能が欠けています。

[[233829]]

Python で Spark を設定する (PySpark)

まず、Sparkをダウンロードしてインストールする必要があります。Sparkファイルを抽出し、インストールして.bashrcファイルパスに追加したら、source .bashrcと入力する必要があります。

PySparkシェルを開くには、コマンド./bin/pysparkを入力します。

PySpark SparkContext とデータフロー

Python で Spark に接続するには、RD4s を使用し、ライブラリ Py4j を使用できます。 PySpark Shell は、Python API を Spark Core にリンクし、Spark コンテキストを初期化します。 SparkContext は Spark アプリケーションの中核です。

  1. Spark Context は内部サービスをセットアップし、Spark 実行環境への接続を確立します。
  2. ドライバー プログラム内の Spark Context オブジェクトは、すべての分散プロセスを調整し、リソースの割り当てを可能にします。
  3. クラスター マネージャー エグゼキューターは、ロジックを持つ JVM プロセスです。
  4. Spark Context オブジェクトは、アプリケーションをエグゼキューターに送信します。
  5. Spark Context は各エグゼキュータでタスクを実行します。

PySpark KDD ユースケース

ここで、ユースケースを見てみましょう。データ ソースは KDD'99 Cup (国際知識発見およびデータ マイニング ツール コンペティション。中国には Zhihu など、同様のコンペティションのオープン データ セットがあります) です。元のデータセットが大きすぎるため、ここではデータセットの一部を取り出します。

RDD を作成する:

これで、このファイルを使用して RDD を作成できます。

フィルター

データセット内の通常の相互作用の数を数えたいとします。次のようにして raw_data RDD をフィルタリングできます。

カウント:

これで、新しい RDD に含まれる要素の数を数えることができます。

出力:

マッピング:

この場合、データファイルを CSV 形式のファイルとして読み取ります。これは、RDD 内の各要素にラムダ関数を適用することで実現できます。以下に示すように、ここでは map() および take() 変換を使用します。

出力:

スプリット:

ここで、RDD 内の各要素をキーと値のペアとして使用します。キーはタグ (通常の値など) で、値は CSV 形式ファイルの行を表す要素のリスト全体です。 これは、line.split() と map() を使用して次のように実行できます。

出力:

集める:

collect() アクションを使用して、RDD のすべての要素をメモリに保存します。したがって、大きな RDD を使用する場合は注意が必要です。

出力:

もちろん、これはこれまでのどの操作よりも時間がかかりました。 RDD の一部を持つ各 Spark ワーカー ノードは、その部分を取得してすべてをまとめるために調整する必要があります。

これまでのすべてを結び付ける最後の例として、通常のやり取りをすべてキーと値のペアとして収集します。

出力:

<<:  人工知能の進化の限界は肉体にある

>>:  人間の生理学的パラメータのモニタリング分野に焦点を当て、Pulse Geekはウェアラブルでこの分野に参入し、AIを活用して心臓の守護者となる

ブログ    
ブログ    
ブログ    

推薦する

...

公共の安全とスマートシティ:AIがどのように役立つか

近年、人工知能の進歩により、私たちのコミュニティの安全性は大幅に向上しました。この技術は、緊急管理者...

推奨アルゴリズム集(パート1) - 協調フィルタリングアルゴリズム

【51CTO.comオリジナル記事】 1. ロングテール効果?動物の尻尾と関係があるのでしょうか?前...

2019 年の AI、セキュリティ、IT 運用、IoT に関する主な予測

次の技術変化が始まる前に、将来の発展の方向を予測・判断し、技術変化に伴う可能性のある困難を軽減する必...

データが増えるほど、AIの意思決定モデルは脆弱になる

データは、人工知能システムを構築するために必要な重要なインフラストラクチャです。データは、AI シス...

2021 年に注目すべき 27 の新たな建築技術トレンド (パート 1)

テクノロジーは建設業界にかつてないほど大きな影響を与えています。クラウドベースのコラボレーションやデ...

食品市場における産業用ロボット、2026年までに7億4500万米ドルに達すると予想

[[433247]]包装食品の需要増加により、食品ロボット市場規模の成長が促進されると予想されます。...

X-Dreamerは2Dと3D生成のギャップを埋め、高品質のテキストから3D生成を実現します。

近年、事前学習済みの拡散モデル[1, 2, 3]の開発により、テキストから3Dコンテンツへの自動作成...

調査によると、AIツールは企業の従業員が年間約400時間を節約するのに役立つことがわかった

7月10日、人材分析・計画会社Visierは、英国、米国、カナダ、ドイツの250社以上の企業の従業員...

GAN はたった 1 枚の画像でトレーニングできます。 Adobe が画像生成方法を改善 | オープンソース

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

2022年のAI時代、将来のトレンドに関する洞察

Appleの携帯電話に搭載されているインテリジェントなパーソナル音声アシスタントSiriから、Alp...

...

研究のアイデアがうまくいかない場合、それはアイデアが悪いからではなく、ハードウェアが追いついていないからかもしれません。

研究アイデアの成功は、そのアイデアが他の研究方向よりも優れているかどうかではなく、適切なハードウェア...

新薬研究開発の方向性は?人工知能はどのように発展するのでしょうか?トップ科学者の意見

昨日は第4回世界トップ科学者フォーラムの2日目でした。世界トップの科学者たちがオンラインとオフライン...

Keras を使用して、30 行未満のコードで最初のニューラル ネットワークを記述します。

[51CTO.com クイック翻訳] 私が初めて AI に触れたときのことを振り返ると、いくつかの...