本記事は、PySparkの特徴とデータ操作をまとめた記事です。 PySparkについて PySpark(Spark)の特徴 ファイルの入出力 入力:単一ファイルでも可 出力:出力ファイル名は付与が不可(フォルダ名のみ指定可能)。指定したフォルダの直下に複数ファイルで出力。 遅延評価 ファイル出力時 or 結果出力時に処理が実行 通常は実行計画のみが計算 Partitioning と Bucketing PySparkの操作において重要なApache Hiveの概念について。 Partitioning: ファイルの出力先をフォルダごとに分けること。読み込むファイルの範囲を制限できる。 Bucketing: ファイル内にて、ハッシュ関数によりデータを再分割すること。効率的に読み込むことができる。 PartitioningとBucketingの詳細についてはこちら(英語)をご覧ください。 計算リ
How to Speed up SQL Queries with Adaptive Query Executionの翻訳です。 この記事は、Databricks Apache Sparkエンジニアリングチーム、Wenchen Fan、Herman van Hovell、MaryAnn Xueと、Intelのエンジニアリングチーム、Ke Jia、Haifeng Chen、Carson Wangの共著です。 以下でカバーされているソリューションのデモ用AQEノートブック 数年をかけて、高品質なクエリー実行計画を生成するために、Spark SQLのクエリーオプティマイザとプランナーを改善するための弛まない努力がはらわれてきました。その中でも最大のものが、Sparkが適切な計画を選択できるように、様々な統計データ(行数、固有な値の数、NULL値、最大値、最小値など)を収集、活用するコストベースの最
SparkとYARNについて書きます。テーマ的にインフラストラクチャについての話が多くなると思います。 SparkとHadoopの関係性 SparkはHadoopクラスタへの依存はしていない。(ただし、ややこしいのだがHDFSやYARNのクライアントライブラリへの依存はある)なのでHadoopなしでも動かすことができる。しかしそれでもHadoopと一緒に動作させることが多いのは以下の理由による。 クラスタマネージャとしてのYARN Sparkはアプリケーション(厳密にはSparkアプリケーション)ごとに下記のようなクラスタが構築される。Driver Programと呼ばれる、SparkContextオブジェクトを持ち、アプリケーションコードの主要部分を実行するアプリケーションのマスタコンポーネントと、RDDに対するオペレーションを実行するExecutor群。そして、Driver Progr
はじめに 前回は、Sparkで処理を実行したときのボトルネック箇所と、その対策について解説しました。今回は、「本検証のシナリオではどのようなクラスタ構成が良いか」検証した結果を解説します。 Spark2.0のパラメータチューニング 最適なクラスタ構成を検討するにあたり、今回はSparkの(設定ファイルspark-defaults.confに記述できる)パラメータのうちいくつかをチューニングします。条件は次の通りです。 Sparkのバージョンは2.0 処理対象のデータは365日分の消費電力量データ Sparkのシャッフルファイル出力先ディスクはHDFSと共用(前回解説したもの) パーティション数のチューニング Sparkはデータを「パーティション」という単位で並列処理します。処理の流れは以下の通りです(図1)。今回はシャッフル処理後の適切なパーティション数を検証します。 (1)データソースか
今回は PySpark でサードパーティ製のライブラリを使って分散処理をする方法について。 サンプルとして、次のような状況を試した。 Apache Spark + Hadoop YARN で構築した分散処理用のクラスタを用いる サードパーティ製のライブラリとして scikit-learn を想定する scikit-learn の学習済みモデルを、あらかじめローカルで用意しておく Iris データセットと学習済みモデルを使った推論を PySpark で分散処理する 使った環境は次の通り。 $ cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) $ uname -r 3.10.0-957.21.3.el7.x86_64 $ python3 -V Python 3.6.8 $ pyspark --version Welcome
はじめに Apache Sparkはデータの高速な処理能力や、汎用性の高さから、昨今ではクラウドのPaaS型のデータ処理エンジンに搭載されるようになってきた。たとえばAzureのサービスでは従来からAzure HDInsightにPure 100% OSSのSparkが以前から搭載されている。Azure DatabricksはSparkのクラスター管理を大幅にクラウド側に寄せ、Notebookやジョブのインターフェース等を提供する形態も出てきて多くのユーザーに利用されているようである。また、2019年のMicrosoft Igniteで発表されたAzure Synapse Analyticsは従来のAzure SQL Data Warehouseに、Sparkエンジンを搭載してオンデマンドクエリ機能を提供するとの事。さらには、Azure Data Factory内にMapping Data
この記事はOpt Technologies Advent Calendar 2017の17日目です。 概要 11日の記事(Spark on EMRの基礎をおさらいする)にてSpark on EMRの構成はおさらいしましたが、トラブルシュートするためにはSparkの内部処理についても理解しておく必要がある、ということでまとめます。また本記事は上記記事を読んでいる方向けの内容となります。 (本記事は社内勉強会にて話した内容に修正を加えたものになります。) Sparkの処理の内部構造 概要 Sparkはコードでそれと意識していなくても分散処理が出来るのが強みですが、内部的には割とややこしいことをしています。具体的には、「どのロジック・オブジェクトがどこで実行されているか。またそのデータはどこから渡ってきているか」です。 RDD Sparkでは扱うデータをRDDと呼ばれるコレクションのような入れ物
PyConJP2017の資料 Python Spark PySpark PyConJP 2017 Apache Spark
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く