Bagikan melalui


Apa direktori kerja default saat ini?

Artikel ini menjelaskan cara kerja default direktori kerja saat ini (CWD) untuk buku catatan dan eksekusi file.

Catatan

Gunakan Databricks Runtime 14.0+ dan konfigurasi ruang kerja default untuk lebih konsistensi dalam perilaku (CWD) di seluruh ruang kerja.

Ada dua perilaku CWD default untuk kode yang dijalankan secara lokal dalam buku catatan dan file:

  1. CWD mengembalikan direktori yang berisi buku catatan atau skrip yang sedang dijalankan.
  2. CWD mengembalikan direktori yang mewakili volume penyimpanan sementara yang terpasang pada driver.

Perilaku CWD ini memengaruhi semua kode, termasuk %sh dan kode Python atau R yang tidak menggunakan Apache Spark. Perilaku ditentukan oleh bahasa kode, versi Databricks Runtime, jalur ruang kerja, dan konfigurasi admin ruang kerja.

Untuk kode Scala, CWD adalah penyimpanan ephemeral yang terpasang pada driver.

Untuk kode dalam semua bahasa lain:

  • Di Databricks Runtime 14.0 ke atas, CWD adalah direktori yang berisi buku catatan atau skrip yang sedang dijalankan. Ini benar terlepas dari apakah kode berada di /Workspace/Repos.
  • Untuk notebook yang menjalankan Databricks Runtime 13.3 LTS dan di bawahnya, CWD bergantung pada apakah kode berada di /Workspace/Repos:
  • Untuk kode yang dijalankan di jalur di luar /Workspace/Repos, CWD adalah volume penyimpanan ephemeral yang terpasang pada driver
  • Untuk kode yang dijalankan dalam jalur di /Workspace/Repos, CWD bergantung pada pengaturan konfigurasi admin dan versi DBR kluster Anda:
    • Untuk ruang kerja dengan enableWorkspaceFilesystem diatur ke dbr8.4+ atau true, pada DBR versi 8.4 ke atas, CWD adalah direktori yang berisi buku catatan atau skrip yang sedang dijalankan. Pada versi DBR di bawah 8.4, ini adalah volume penyimpanan ephemeral yang melekat pada driver
    • Untuk ruang kerja dengan enableWorkspaceFilesystem diatur ke dbr11.0+, pada DBR versi 11.0 ke atas, CWD adalah direktori yang berisi buku catatan atau skrip yang dijalankan. Pada versi DBR di bawah 11.0, ini adalah volume penyimpanan ephemeral yang terpasang pada driver
    • Untuk ruang kerja dengan enableWorkspaceFilesystem diatur ke false, CWD adalah volume penyimpanan sementara yang terpasang pada driver

Bagaimana hal ini berdampak pada beban kerja?

Dampak terbesar terhadap beban kerja ada hubungannya dengan persistensi dan lokasi file:

  • Dalam Databricks Runtime 13.3 LTS dan di bawahnya, untuk kode yang dijalankan di jalur di luar /Workspace/Repos, banyak cuplikan kode menyimpan data ke lokasi default pada volume penyimpanan sementara yang dihapus secara permanen saat kluster dihentikan.
  • Di Databricks Runtime 14.0 ke atas, perilaku default untuk operasi ini membuat file ruang kerja yang disimpan bersama buku catatan yang sedang berjalan yang bertahan hingga dihapus secara eksplisit.

Untuk catatan tentang perbedaan performa dan batasan lain yang melekat dalam file ruang kerja, lihat Bekerja dengan file ruang kerja.

Kembali ke perilaku warisan

Anda dapat mengubah direktori kerja saat ini untuk buku catatan apa pun menggunakan metode os.chdir()Python . Jika Anda ingin memastikan bahwa setiap buku catatan menggunakan CWD pada volume penyimpanan ephemeral yang dilampirkan ke driver, Anda bisa menambahkan perintah berikut ke sel pertama setiap buku catatan dan menjalankannya sebelum kode lainnya:

import os

os.chdir("/tmp")