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 を使用してデータを安全に保存できます。
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
ディレクトリは、これらのコマンドのルート パスであることに注意してください。
%fs ls
相対パスに保存する場合、ファイルの場所はコードを実行する場所によって異なります。 Databricks ノートブックを使用している場合、データ ファイルはクラスターのドライバーに接続されているボリューム ストレージに保存されます。この場所に格納されたデータは、クラスターが終了すると完全に削除されます。 任意のファイルのサポートが有効になっている Databricks Git フォルダー を使用している場合、データは現在のプロジェクトのルートに保存されます。 どちらの場合も、 %sh
magicコマンドを使用して書かれたファイルを探索することができ、次の例のように、現在のルートディレクトリを基準にして単純なbash操作を行うことができます。
%sh ls
Databricks でさまざまなファイルを保存する方法の詳細については、「Databricksでのファイルの操作」を参照してください。
Pandas上のDatabricks でデータをどのようにロードしますか?
Databricks には、探索のためにワークスペースにデータをアップロードしやすくするためのオプションが多数用意されています。 pandas を使用してデータを読み込むための推奨される方法は、ワークスペースにデータを読み込む方法によって異なります。
ローカル コンピューター上にノートブックと共に小さなデータ ファイルが保存されている場合は、 データとコードを Git フォルダーと共にアップロードできます。 その後、相対パスを使用してデータファイルをロードできます。
Databricks には、データの読み込みに UI ベースの広範なオプションが用意されています。 これらのオプションのほとんどは、データを Delta テーブルとして格納します。 Deltaテーブルを に 読み取Sparkデータフレーム ってから、それを に変換Pandasデータフレーム できます。
DBFS または相対パスを使用してデータ ファイルを保存した場合は、DBFS または相対パスを使用して、それらのデータ ファイルを再ロードできます。 次のコードはその一例です。
import pandas as pd
df = pd.read_csv("./relative_path_test.csv")
df = pd.read_csv("/dbfs/dbfs_test.csv")
と完全修飾 URL を使用して、 から直接データをロードできます。S3Pandasクラウドデータにアクセスするには、クラウド資格情報を提供する必要があります。
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
}
)