Databricks で pandas を使用できますか?
Databricks Runtime には、標準の Python パッケージの 1 つとして pandas が含まれており、Databricks ノートブックとジョブでpandas DataFrames を作成して活用できます。
Databricks Runtime10.4LTS 以降では、Pandas API on Sparkは使い慣れた Pandas コマンドをPySpark DataFrame 上で提供します。pandas と PySpark の間で DataFrames を変換する こともできます。
Apache Spark には、 pandas 関数 API の形式で Python ロジックのArrow最適化実行が含まれているため、ユーザーはpandas変換を PySpark DataFrames に直接適用できます。Apache Spark は、Python で定義された任意のユーザー関数に対して同様のArrow最適化を使用する pandas UDF もサポートされています。
pandas は Databricksのデータをどこに保存しますか?
pandas を使用して、Databricks のさまざまな場所にデータを格納できます。 一部の場所からデータを格納および読み込む機能は、ワークスペース管理者が設定した構成によって異なります。
注
Databricks では、本番運用データをクラウドオブジェクトストレージに格納することを推奨しています。 「 Google Cloud Storage への接続」を参照してください。
機密情報のないデータをすばやく探索するには、次の例に示すように、相対パスまたは DBFS を使用してデータを安全に保存できます。
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")
次の例のように、 %fs
マジックコマンドを使用して DBFS に書き込まれたファイルを調べることができます。 /dbfs
ディレクトリは、これらのコマンドのルート パスであることに注意してください。
%fs ls
相対パスに保存する場合、ファイルの場所はコードを実行する場所によって異なります。 Databricks ノートブックを使用している場合、データ ファイルはクラスターのドライバーに接続されているボリューム ストレージに保存されます。 この場所に保存されたデータは、クラスターが終了すると完全に削除されます。 任意のファイルのサポートを有効にしてDatabricks Git フォルダーを使用している場合、データは現在のプロジェクトのルートに保存されます。 どちらの場合も、次の例のように、 %sh
マジック コマンドを使用して書き込まれたファイルを探索できます。これにより、現在のルート ディレクトリを基準とした単純な bash 操作が可能になります。
%sh ls
Databricks がさまざまなファイルを格納する方法の詳細については、「 Databricks でのファイルの操作」を参照してください。
Databricks で pandas を使用してデータをロードするにはどうすればよいですか?
Databricks には、探索のためにワークスペースにデータをアップロードしやすくするためのオプションが多数用意されています。 pandas を使用してデータを読み込むための推奨される方法は、ワークスペースにデータを読み込む方法によって異なります。
ローカル マシン上のノートブックと一緒に小さなデータ ファイルが保存されている場合は、データとコードをGit フォルダーと一緒にアップロードできます。 その後、相対パスを使用してデータファイルを読み込むことができます。
Databricks には、データの読み込みに UI ベースの広範なオプションが用意されています。 これらのオプションのほとんどは、データを Delta テーブルとして格納します。 Delta テーブルを Spark DataFrameに読み取り、それを Pandas DataFrameに変換できます。
DBFS または相対パスを使用してデータ ファイルを保存した場合は、DBFS または相対パスを使用してそれらのデータ ファイルを再読み込みできます。 次のコードに例を示します。
import pandas as pd
df = pd.read_csv("./relative_path_test.csv")
df = pd.read_csv("/dbfs/dbfs_test.csv")
と完全修飾 URL を使用して 、 から直接データを読み込むことができます。Google Cloud StoragePandasクラウドデータにアクセスするには、クラウド資格情報を提供する必要があります。
df = pd.read_csv(
f"gs://{bucket_name}/{file_path}",
storage_options={
"token": credentials
}
)