メインコンテンツへジャンプ
ページ 1
Industries category icon 1

2023年のPySpark:1年を振り返って

2023年にリリースされたApache Spark 3.4と3.5で、私たちはPySparkのパフォーマンス、柔軟性、使いやすさの改善に重点を置きました。 このブログ記事では、主な改善点をご紹介します。 2023年にApache Spark 3.4と3.5で追加された最も重要な機能の概要です: Spark Connect は、任意のアプリケーションからSparkクラスタへのリモート接続を可能にする、クライアントとサーバーを分離したアーキテクチャを導入しています。 これにより、サービスとしてのSparkは、安定性、アップグレード可能性、可観測性を高めながら実現されます。 Arrowに最適化されたPythonユーザー定義関数(UDF )では、Arrowのカラムナーフォーマットを活用することで、通常のPython UDFの2倍のパフォーマンスを実現し、飛躍的な効率の向上を示しました。 Pythonのユーザー定義テーブル関数(UDTF) により、ユーザーはPySparkでネイティブにテーブルベースの変換を実行できるように
Engineering blog

PySparkによるパラメータ化クエリ

PySparkは常にデータを問い合わせるための素晴らしいSQLとPython APIを提供してきました。 Databricks Runtime 12.1とApache Spark 3.4の時点で、パラメータ化されたクエリは、Pythonicプログラミングパラダイムを使用してSQLでデータをクエリする安全で表現力豊かな方法をサポートしています。 この投稿では、PySparkでパラメータ化されたクエリを作成する方法と、それがあなたのコードにとって良いデザインパターンである場合について説明します。 パラメータは、Sparkコードの再利用やテストを容易にするのに役立ちます。 また、良いコーディングの実践も奨励しています。 この記事では、PySparkのクエリをパラメータ化する2つの異なる方法を示します: PySpark カスタム文字列フォーマット パラメータマーカー 両方のタイプのPySparkパラメータ付きクエリの使い方を見て、組み込みの機能が他の選択肢よりも優れている理由を探ってみましょう。 パラメータ化されたクエリ
Engineering blog

Spark ConnectにおけるPythonの依存関係の管理方法

November 14, 2023 Hyukjin Kwon鄭瑞鳳 による投稿 in エンジニアリングのブログ
分散コンピューティング環境におけるアプリケーションの環境管理は難しい。 すべてのノードがコードを実行するのに必要な環境を持っていることを保証し、ユーザーのコードの実際の場所を決定することは、複雑なタスクである。 Apache Spark™は、Conda、venv、PEXなど様々な方法を提供している。 --jars、--packagesの ようなスクリプトオプションや、 spark.jars.*の ようなSparkコンフィギュレーションをサブミットする方法と 同様に、 PySparkでPythonの依存関係を管理する方法も併せて参照してみてください。これらのオプションにより、ユーザーはクラスタ内の依存関係をシームレスに処理できる。 しかし、Apache Sparkの依存関係を管理するための現在のサポートには限界がある。 依存関係は静的にしか追加できず、実行中に変更することはできない。 つまり、Driverを起動する前に必ず依存関係を設定する必要がある。 この問題に対処するため、Apache Spark 3.5.0か
Engineering blog

Apache Spark™ 3.5におけるArrowに最適化されたPython UDF

Apache Spark™では、Pythonのユーザー定義関数(UDF)は最も人気のある機能の1つです。 ユーザーは、独自のデータ処理ニーズに合わせてカスタムコードを作成することができる。 しかし、シリアライズとデシリアライズのためにcloudpickleに依存している現在のPython UDFは、特に大きなデータの入出力を扱うときに、パフォーマンスのボトルネックに遭遇する。 Apache Spark 3.5と Databricks Runtime 14.0では 、Arrowに最適化されたPython UDFを導入し、パフォーマンスを大幅に改善しました。 この最適化の核となるのが、標準化された言語横断的なカラム型インメモリデータ表現である Apache Arrow である。 Arrowを利用することで、これらのUDFは、従来の遅いデータ(デ)シリアライゼーションの方法をバイパスし、JVMとPythonプロセス間の迅速なデータ交換をもたらします。 Apache Arrowの豊富な型システムにより、これらの最適化され
Engineering blog

Apache Spark™ 3.5のご紹介

翻訳:Junichi Maruyama. - Original Blog Link 本日、Databricks Runtime 14.0の一部として、Databricks上でApache Spark™ 3.5が利用可能になったことを発表いたします。Spark 3.5のリリースに多大な貢献をしていただいたApache Sparkコミュニティに深く感謝いたします。 Sparkをこれまで以上にアクセスしやすく、多用途で効率的なものにするという我々のミッションに沿った今回のアップデートには、以下のような新機能と改良が盛り込まれています: The English SDK for Apache Spark enables users to...
Engineering blog

Spark Connect がApache Spark 3.4で利用可能になりました

Original Blog : Spark Connect Available in Apache Spark 3.4 翻訳: junichi.maruyama 昨年、Data and AI SummitでSpark Connectが 紹介 されました。最近リリースされたApache SparkTM 3.4の一部として、Spark Connectは一般的に利用できるようになりました。また、最近Databricks ConnectをSpark...
Engineering blog

Apache Spark™ 3.4 for Databricks Runtime 13.0の紹介

Original Blog : Introducing Apache Spark™ 3.4 for Databricks Runtime 13.0   (翻訳: junichi.maruyama ) 本日、 Databricks Runtime 13.0 の一部として、Databricks上で Apache Spark™ 3.4...
Engineering blog

Apache Spark™ 3.2 の概要

Apache Spark™ 3.2 が、 Databricks ランタイム 10.0 の一部として Databricks 上で利用できるようになりました。Spark 3.2 のリリースにあたり、Apache Spark コミュニティの皆様の多大な貢献に感謝します。 Maven での Spark のダウンロード数が急増しています。 月間のダウンロード数は 2,000万 に達し、対前年比では 2 倍の成長率を示しています。Spark...
Engineering blog

Koalas(PySpark)がDask よりも高速な理由 – SQL クエリ最適化など

Koalas は、Apache Spark 上で pandas API を実装するデータサイエンスライブラリです。Koalas を利用することで、データサイエンティストは、使い慣れた API を介してあらゆる規模のデータセットを扱うことができます。今回私たちは、ビッグデータ分析の際によく使用される pandas API を実装した並列計算ライブラリの Dask と、PySpark の Koalas とのパフォーマンス比較を行いました。ベンチマークテストを繰り返したところ、 Koalas のパフォーマンスは、Dask と比較して、シングルノードで 4 倍、クラスタで...
Engineering blog

Apache Spark™ 3.0 のデータ型:日付とタイムスタンプ

Apache Spark は、構造化データと非構造化データの処理に使用される非常に一般的なツールです。構造化データの処理に関しては、整数、LONG、DOUBLE、STRING といった多くの基本的なデータ型をサポートしています。Spark は、開発者が理解するのが難しいことが多い DATE や TIMESTAMP などの複雑なデータ型もサポートしています。このブログでは、日付型とタイムスタンプ型について深く掘り下げ、その動作と一般的な問題を回避する方法を解説します。主に、次の 4 つの部分をカバーしています。 日付型と関連する暦法の定義と Spark 3.0 から適用された暦法の変更について タイムスタンプ型の定義とタイムゾーンとの関係(タイムゾーンオフセットの解消に関する詳細と、Spark 3.0 で使用される Java 8 の新しい Time API...