您可以在 Azure Databricks 上使用 Pandas 嗎?
Databricks Runtime 包含 pandas 作為其中一個標準 Python 套件,可讓您在 Databricks 筆記本和作業中建立及運用 Pandas DataFrames。
在 Databricks Runtime 10.4 LTS 和更新版本中,Spark 上的 Pandas API 會在 PySpark DataFrames 上提供熟悉的 Pandas 命令。 您也可以在 Pandas 與 PySpark 之間轉換 DataFrame。
Apache Spark 包含以 pandas 函式 API 形式進行 Python 邏輯的箭頭最佳化執行,可讓使用者將 pandas 轉換直接套用至 PySpark DataFrame。 Apache Spark 也支援 pandas UDF,其針對 Python 中定義的任意使用者函式使用類似的箭頭最佳化。
pandas 將數據儲存在 Azure Databricks 的哪裡?
您可使用 pandas 將資料儲存在 Azure Databricks 上許多不同的位置。 您可以從某些位置儲存和載入資料的能力取決於工作區系統管理員所設定的組態。
注意
Databricks 建議將生產資料儲存在雲端物件儲存體上。 請參閱連線至 Azure Data Lake Storage Gen2 和 Blob 儲存體。
如果您位於已啟用 Unity 目錄的工作區中,您可以使用外部位置存取雲端記憶體。 如需相關資訊,請參閱建立外部位置以將雲端儲存連線到 Azure 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")
您可使用 %fs
magic 命令探索寫入 DBFS 的檔案,如下列範例所示。 請注意,/dbfs
目錄是這些命令的根路徑。
%fs ls
當您儲存至相對路徑時,檔案的位置取決於您執行程序代碼的位置。 如果您使用 Databricks 筆記本,資料檔案會儲存至連結至叢集驅動程式的磁碟區儲存體。 當叢集終止時,會永久性刪除儲存在此位置的資料。 如果您使用已啟用任意檔案支援的 Databricks Git 資料夾,您的資料會儲存到目前專案的根目錄。 不論是哪一種情況,您都可使用 %sh
magic 命令探索撰寫的檔案,以允許相對於您目前根目錄的簡單 Bash 作業,如下列範例所示:
%sh ls
如需 Azure Databricks 如何儲存各種檔案的詳細資訊,請參閱使用 Azure Databricks 上的檔案。
如何在 Azure Databricks 上使用 Pandas 載入資料?
Azure Databricks 提供數個選項,可協助將資料上傳至工作區以進行探索。 使用 pandas 載入資料的慣用方法會因將資料載入工作區的方式而有所不同。
如果您的小型資料檔案與筆記本一起儲存在本機電腦上,您可將資料和程式碼與 Git 資料夾一起上傳。 然後,您可使用相對路徑來載入資料檔案。
Azure Databricks 提供廣泛的 UI 型選項來載入資料。 這些選項大多會將您的數據儲存為 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")
您可使用 pandas 和完整 URL,直接從 Azure Data Lake Storage Gen2 載入資料。 您必須提供雲端認證來存取雲端數據。 也必須安裝 Python 套件 fsspec
和 adlfs
。
df = pd.read_csv(
f"abfss://{container}@{storage_account}.dfs.core.windows.net/{file_path}",
storage_options={
"sas_token": sas_token_value
}
)