メインコンテンツまでスキップ

PandasでDatabricks を使用できますか?

Databricks Runtime には、標準の Python パッケージの 1 つとして pandas が含まれており、Databricks ノートブックとジョブでpandas データフレーム を作成して活用できます。

Databricks Runtime10.4LTS 以降では、PandasAPI は の上におなじみのSpark Pandasコマンドを提供します。PySparkデータフレームデータフレームを Pandas と PySparkの間で変換することもできます。

には、Pandas 関数APIs Apache Sparkの形で ロジックのArrow最適化実行が含まれており、ユーザーはPythonPandas 変換を直接PySparkデータフレーム に適用できます。は、 で定義されている任意のユーザー関数に対して同様のApache Spark Arrow 最適化を使用するPandas UDFPython もサポートしています。

PandasDatabricksのどこにデータを保存しますか?

pandas を使用して、Databricks のさまざまな場所にデータを格納できます。 一部の場所からデータを格納および読み込む機能は、ワークスペース管理者が設定した構成によって異なります。

注記

Databricks 、本番運用データをクラウドオブジェクトストレージに保存することを推奨しています。 「 Amazon S3 への接続」を参照してください。

Unity Catalog 対応のワークスペースを使用している場合は、外部ロケーションを使用してクラウドストレージにアクセスできます。 クラウドストレージをDatabricksに接続するための外部ロケーションの作成を参照してください。

機密情報を含まないデータをすばやく探索するには、次の例のように、相対パスまたは DBFS を使用してデータを安全に保存できます。

Python
import pandas as pd

df = pd.DataFrame([["a", 1], ["b", 2], ["c", 3]])

df.to_csv("./relative_path_test.csv")
df.to_csv("/dbfs/dbfs_test.csv")

DBFS に書き込まれたファイルは、次の例のように %fs マジック コマンドで探索できます。 /dbfs ディレクトリは、これらのコマンドのルート パスであることに注意してください。

Bash
%fs ls

相対パスに保存する場合、ファイルの場所はコードを実行する場所によって異なります。 Databricks ノートブックを使用している場合、データ ファイルはクラスターのドライバーに接続されているボリューム ストレージに保存されます。この場所に格納されたデータは、クラスターが終了すると完全に削除されます。 任意のファイルのサポートが有効になっている Databricks Git フォルダー を使用している場合、データは現在のプロジェクトのルートに保存されます。 どちらの場合も、 %sh magicコマンドを使用して書かれたファイルを探索することができ、次の例のように、現在のルートディレクトリを基準にして単純なbash操作を行うことができます。

Bash
%sh ls

Databricks でさまざまなファイルを保存する方法の詳細については、「Databricksでのファイルの操作」を参照してください。

Pandas上のDatabricks でデータをどのようにロードしますか?

Databricks には、探索のためにワークスペースにデータをアップロードしやすくするためのオプションが多数用意されています。 pandas を使用してデータを読み込むための推奨される方法は、ワークスペースにデータを読み込む方法によって異なります。

ローカル コンピューター上にノートブックと共に小さなデータ ファイルが保存されている場合は、 データとコードを Git フォルダーと共にアップロードできます。 その後、相対パスを使用してデータファイルをロードできます。

Databricks には、データの読み込みに UI ベースの広範なオプションが用意されています。 これらのオプションのほとんどは、データを Delta テーブルとして格納します。 Deltaテーブルを に 読み取Sparkデータフレーム ってから、それを に変換Pandasデータフレーム できます。

DBFS または相対パスを使用してデータ ファイルを保存した場合は、DBFS または相対パスを使用して、それらのデータ ファイルを再ロードできます。 次のコードはその一例です。

Python
import pandas as pd

df = pd.read_csv("./relative_path_test.csv")
df = pd.read_csv("/dbfs/dbfs_test.csv")

と完全修飾 URL を使用して、 から直接データをロードできます。S3Pandasクラウドデータにアクセスするには、クラウド資格情報を提供する必要があります。

Python
df = pd.read_csv(
f"s3://{bucket_name}/{file_path}",
storage_options={
"key": aws_access_key_id,
"secret": aws_secret_access_key,
"token": aws_session_token
}
)