共用方式為


以程序設計方式與工作區檔案互動

您可以以程式設計方式與儲存在 Azure Databricks 中的工作區檔案互動。 這可以讓您進行下列任務:

  • 將小型數據檔與筆記本和程式代碼一起儲存。
  • 將記錄檔寫入與 Git 同步的目錄。
  • 使用相對路徑匯入模組。
  • 建立或修改環境規格檔案。
  • 從筆記本撰寫輸出。
  • 將執行 Tensorboard 等庫的輸出寫入。

您可以在 Databricks Runtime 11.3 LTS 和更新版本中,以程式設計方式建立、編輯、重新命名和刪除工作區檔案。 Databricks Runtime 16.2 及以上版本的筆記本和無伺服器環境 2 及以上版本都支援此功能。

注意

若要停用寫入工作區檔案,請將叢集環境變數設定為 WSFS_ENABLE_WRITE_SUPPORT=false。 如需詳細資訊,請參閱 環境變數

注意

在 Databricks Runtime 14.0 和更新版本中,本機執行之程式代碼的預設目前工作目錄 (CWD) 是包含執行筆記本或腳本的目錄。 這是相較於 Databricks Runtime 13.3 LTS 及更低版本的行為變更。 請參閱 什麼是預設目前工作目錄?

讀取檔案的位置

使用 Shell 命令來讀取文件的位置,例如,在存放庫或本地文件系統中。

若要判斷檔案的位置,請輸入下列內容:

%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 中的工作區檔案。 Notebook 會被視為 Databricks Runtime 16.2 及更高版本中的工作區檔案,以及無伺服器執行環境 2 及更高版本。 下列範例使用標準 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')

將筆記本 為工作區檔案

注意

這項功能適用於 Databricks Runtime 16.2 和更新版本,以及無伺服器環境 2 和更新版本。

所有與檔案的程式設計互動也適用於筆記本。 如果滿足以下條件,工作區中的資產將被識別為筆記本:

  • 它有 .ipynb 擴充功能,
  • 或包含第一行附註中的字串 Databricks notebook source,並具有下列其中一個擴展名:.py.r.scala.sql

任何變更這些條件的筆記本或檔案的寫入或重新命名,也會變更筆記本或檔案的類型。 例如,如果您的檔案 myfile.txt 的第一行是 # Databricks notebook source,將該檔案重新命名為 myfile.py,會將其轉換為筆記本。

如需將檔案轉換成筆記本的相關信息,請參閱 匯入檔案,並將它轉換成筆記本