Apache Spark とは?

robot
概要作成中

Apache Sparkはビッグデータ向けのオープンソース分析エンジンです。これは、大量のデータワークロードを扱う組織にとって、ゲームを変えるような存在です。Sparkは速い。非常に速いです。メモリ内処理を使用しているため、従来のフレームワークを超えて、メモリ操作に関してはMapReduceよりも100倍速いです。ディスクベースの処理でも?それでも10倍速いです。

スパークの際立った特徴

Sparkはあなたにこの全体のエコシステムを提供します:

  • スピード: メモリ内エンジンがデータ処理を瞬時に行います
  • 多用途性: あらゆることができる—SQL、機械学習、リアルタイム処理、グラフ
  • 統一プラットフォーム: 異なるデータソースと連携します
  • 分散処理: 大規模データセットのためにクラスタ間で作業を分散します
  • リッチライブラリ: 機械学習のためのMLlibを搭載。Spark Streamingも。グラフ分析のためのGraphXも。

スパークのアーキテクチャの内部

Apache Sparkのコア要素には次のものが含まれます:

  1. スパークドライバー: あらゆるスケジューラーとマネージャーを備えており、あなたのコードをジョブに変換します
  2. エグゼキューター: これらは実際の計算を行います
  3. クラスター管理者: スタンドアロン、YARN、その他何でも可能です。彼らはワーカーノードを取得します。
  4. ワーカーノード: 重い作業を行うサーバー

PySpark UDFs: Spark を自分だけのものにする

Sparkはユーザー定義関数で拡張できます。非常に便利です。これらのUDFはPySparkで、組み込み関数が不十分な場合にカスタムロジックを作成することができます。

このようなUDFを作成してください:

ニシキヘビ pyspark.sql.functionsからUDFをインポートします pyspark.sql.typesからStringTypeをインポートします

Python関数を定義する

デフconvert_case(text): text.upper()を返す if text else None

UDFとして登録

upper_case_udf = udf(convert_case、StringType())

データフレームに適用する

df = df.withColumn("upper_text", upper_case_udf(df.text_column))

UDFは完璧ではありません。シリアル化の関係で組み込み関数よりも遅くなります。速度が重要な場合はベクトル化されたUDFを試してみてください。慎重に使用してください。

spark-defaults.conf で Spark を調整する

このspark-defaults.confファイルを通じてSparkを制御できます。これは単なるプロパティ-値ペアです:

spark.master=yarn です。 spark.executor.memory=4g spark.driver.memory=2g spark.executor.cores=2 spark.sql.shuffle.partitions=200

良いチューニングはメモリに関することが関わっているようです。パーティション設定も重要です。ガベージコレクションは非常に重要になることがあります。シリアライゼーションオプションはパフォーマンスに役立つかもしれません。

Sparkは進化し続けています。データの世界では大きな存在です。完璧ではありませんが、かなり重要です。

原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • コメント
  • リポスト
  • 共有
コメント
0/400
コメントなし
  • ピン
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)