以程序設計方式與工作區檔案互動
您可以以程式設計方式與儲存在 Azure Databricks 中的工作區檔案互動。 這會啟用下列工作:
- 將小型數據檔與筆記本和程式代碼一起儲存。
- 將記錄檔寫入與 Git 同步的目錄。
- 使用相對路徑匯入模組。
- 建立或修改環境規格檔案。
- 從筆記本撰寫輸出。
- 從執行 Tensorboard 等連結庫寫入輸出。
您可以在 Databricks Runtime 11.3 LTS 和更新版本中以程式設計方式建立、編輯和刪除工作區檔案。
注意
若要停用寫入工作區檔案,請設定叢集環境變數 WSFS_ENABLE_WRITE_SUPPORT=false
。 如需詳細資訊,請參閱環境變數。
注意
在 Databricks Runtime 14.0 和更新版本中,本機執行之程式代碼的預設目前工作目錄 (CWD) 是包含執行筆記本或腳本的目錄。 這是 Databricks Runtime 13.3 LTS 和以下的行為變更。 請參閱 什麼是預設目前的工作目錄?。
讀取檔案的位置
使用殼層命令來讀取檔案的位置,例如,在存放庫或本機文件系統中。
若要判斷檔案的位置,請輸入下列內容:
%sh ls
- 檔案不在存放庫中: 命令會傳回檔案系統
/databricks/driver
。 - 檔案位於存放庫中: 命令會傳回虛擬化存放庫,例如
/Workspace/Repos/name@domain.com/public_repo_2/repos_file_system
。
讀取數據工作區檔案
您可以透過程式設計方式從筆記本中的程式代碼讀取小型數據檔,例如 .csv
或 .json
檔案。 下列範例會使用 Pandas 來查詢相對於專案存放庫根目錄儲存在 /data
目錄中的檔案:
import pandas as pd
df = pd.read_csv("./data/winequality-red.csv")
df
您可以使用 Spark 來讀取資料檔。 您必須提供 Spark 的完整路徑。
- Git 資料夾中的工作區檔案會使用路徑
file:/Workspace/Repos/<user-folder>/<repo-name>/path/to/file
。 - 個人目錄中的工作區檔案會使用路徑:
file:/Workspace/Users/<user-folder>/path/to/file
。
您可以從檔案旁邊的下拉選單,將絕對路徑或相對路徑複製到檔案:
下列範例示範 如何使用 {os.getcwd()}
來取得完整路徑。
import os
spark.read.format("csv").load(f"file:{os.getcwd()}/my_data.csv")
若要深入瞭解 Azure Databricks 上的檔案,請參閱 使用 Azure Databricks 上的檔案。
以程式設計方式建立、更新和刪除檔案和目錄
在 Databricks Runtime 11.3 LTS 和更新版本中,您可以直接操作 Azure Databricks 中的工作區檔案。 下列範例使用標準 Python 套件和功能來建立及操作檔案和目錄。
# Create a new directory
os.mkdir('dir1')
# Create a new file and write to it
with open('dir1/new_file.txt', "w") as f:
f.write("new content")
# Append to a file
with open('dir1/new_file.txt', "a") as f:
f.write(" continued")
# Delete a file
os.remove('dir1/new_file.txt')
# Delete a directory
os.rmdir('dir1')