Apache Spark は、Azure Databricks データ インテリジェンス プラットフォームの中核をなしており、コンピューティング クラスターと SQL ウェアハウスをサポートするテクノロジです。 Azure Databricks は、Apache Spark ワークロードを実行するための効率的でシンプルなプラットフォームを提供する、Apache Spark 用に最適化されたプラットフォームです。
Apache Spark と Azure Databricks はどのような関係ですか?
Databricks 社は、Apache Spark の創業者によって設立されました。 オープン ソースのソフトウェア プロジェクトである Apache Spark には、Databricks をはじめとする多くの大手企業のコミッターが含まれています。
Databricks では、Apache Spark 向けの機能の開発とリリースを続けています。 Azure Databricks を強化する Databricks ランタイムには、Apache Spark を基に構築および拡張する追加の最適化と独自の機能が含まれています。 これには、Spark と組み合わせて使用できる最適化された実行レイヤーである Photon が含まれます。 Databricks Photon は、Apache Spark ワークロードのパフォーマンスを操作して向上するように設計されています。 Photon は、クエリやその他の操作をベクター化することで Spark のパフォーマンスを向上させ、SQL および DataFrame API 操作をより高速に実行できるようにします。
Databricks は Apache Spark 用にどのように最適化されていますか?
Apache Spark では、すべての操作が変換またはアクションとして定義されます。
- 変換: プランに処理ロジックを追加します。 たとえば、データの読み取り、結合、集計、型キャストなどがあります。
- アクション: 結果を評価して出力する処理ロジックをトリガーします。 たとえば、書き込み、結果の表示またはプレビュー、手動キャッシュ、行数の取得などがあります。
Apache Spark は、"遅延実行" モデルを使います。これは、アクションがトリガーされるまで、操作のコレクションによって定義されたロジックはいずれも評価されないことを意味します。 ロジックの不要な評価を回避するには、アクションのみを使用して結果をターゲット テーブルに保存します。
アクションはロジックを最適化するための処理のボトルネックを表しているため、Azure Databricks では、最適なロジック実行を確保するために、Apache Spark に既に存在するものの上に多数の最適化が追加されています。 これらの最適化では、特定のアクションによってトリガーされるすべての変換が一度に考慮され、データの物理レイアウトに基づいて最適なプランを見つけます。 データを手動でキャッシュしたり、プレビューを返したりすると、運用パイプラインでこれらの最適化が中断され、コストと待機時間が増加する可能性があります。
Apache Spark は Azure Databricks でどのように動作しますか?
Azure Databricks にコンピューティング クラスターまたは SQL ウェアハウスをデプロイすると、Apache Spark が構成され、仮想マシンにデプロイされます。 Spark コンテキストまたは Spark セッションは Azure Databricks によって管理されるため、構成または初期化する必要はありません。
Apache Spark を使用せずに Azure Databricks を使用できますか?
はい。 Azure Databricks ではさまざまなワークロードがサポートされ、Databricks Runtime には多数のオープンソース ライブラリが含まれています。 Databricks SQL では内部で Photon を使用しますが、エンド ユーザーは Spark SQL 構文を使用して Photon を使用してデータベース オブジェクトを作成し、クエリを実行できます。
Databricks Runtime for Machine Learning は ML ワークロード用に最適化されていて、多くのデータ サイエンティストは、Azure Databricks で作業しているときに TensorFlow や SciKit Learn などの主要なオープンソース ライブラリを使用します。 ジョブを使用すると、Azure Databricks によってデプロイおよび管理されているコンピューティング リソースに対して任意のワークロードをスケジュールできます。
Azure Databricks で Apache Spark を使用する理由は何ですか?
Databricks プラットフォームでは、ビジネスに合わせて拡張されるエンタープライズ ソリューションを開発およびデプロイするための、安全でコラボレーションに対応した環境を提供しています。 Databricks の従業員には、世界で最も知識の豊富な Apache Spark 保守担当者とユーザーの多くが含まれています。 同社は、ユーザーが Apache Spark を実行するための最速の環境にアクセスできるように、新しい最適化を継続的に開発およびリリースしています。
Azure Databricks での Apache Spark の使用について詳しく知るにはどうすればよいですか?
Azure Databricks で Apache Spark の使用を始めるには、すぐに飛び込んでみてください! Apache Spark DataFrames チュートリアルでは、Python、R、または Scala でのデータの読み込みと変換について説明しています。 「チュートリアル: Apache Spark DataFrames を使用してデータを読み込んで変換する」を参照してください。
Spark での Python、R、Scala 言語のサポートの詳細については、Scala 開発者向けの Azure Databricks、 sparklyr、 Azure Databricks の PySpark と Apache Spark API のリファレンスを参照してください。