Aracılığıyla paylaş


Python ve R modülleriyle çalışma

Bu makalede, Databricks not defterlerinizle birlikte çalışma alanı dosyalarında depolanan özel Python ve R modüllerini içeri aktarmak için göreli yolları nasıl kullanabileceğiniz açıklanmaktadır. Çalışma alanı dosyaları daha sıkı geliştirme yaşam döngülerini kolaylaştırarak kodunuzu modüler hale getirebilmenizi, %run komutlarını içeri aktarma deyimlerine dönüştürmenizi ve Python tekerlek dosyalarını birlikte sürümlenmiş modüllere yeniden düzenlemenizi sağlar. Kodunuzu test etmek için yerleşik Databricks web terminalini de kullanabilirsiniz.

Not

Databricks Runtime 14.0 ve üzerinde, yerel olarak yürütülen kod için varsayılan geçerli çalışma dizini (CWD), çalıştırılmakta olan not defterini veya betiği içeren dizindir. Bu, Databricks Runtime 13.3 LTS ve altındaki davranışlarda bir değişikliktir. Bkz. Varsayılan geçerli çalışma dizini nedir?.

Python ve R modüllerini içeri aktarma

Önemli

Databricks Runtime 13.3 LTS ve üzerinde Python 'a eklenen dizinler veya Python sys.pathpaketleri olarak yapılandırılmış dizinler, kümedeki tüm yürütücülere otomatik olarak dağıtılır. Databricks Runtime 12.2 LTS ve altında, öğesine sys.path eklenen kitaplıkların yürütücülere açıkça yüklenmesi gerekir.

Databricks Runtime 11.3 LTS ve üzerinde, not defterinizin geçerli çalışma dizini otomatik olarak Python yoluna eklenir. Git klasörleri kullanıyorsanız kök depo dizini eklenir.

Modülleri başka bir dizinden içeri aktarmak için modülünü içeren dizini öğesine sys.patheklemeniz gerekir. Aşağıdaki örnekte olduğu gibi göreli yol kullanarak dizinleri belirtebilirsiniz:

import sys
import os
sys.path.append(os.path.abspath('..'))

Çalışma alanı dosyalarında depolanan bir modüldeki işlevleri, küme kitaplığı veya not defteri kapsamlı kitaplık olarak kaydedilmiş bir modülden yaptığınız gibi içeri aktarırsınız:

Python

from sample import power
power.powerOfTwo(3)

R

source("sample.R")
power.powerOfTwo(3)

Önemli

Bir import deyim kullandığınızda ve aynı ada sahip birden çok kitaplık mevcut olduğunda, Databricks hangi kitaplığın yükleneceğini belirlemek için öncelik kurallarını kullanır. Bkz. Python kitaplığı önceliği.

Python modülleri için otomatik yükleme

Python kodu geliştirirken birden çok dosyayı düzenliyorsanız, uzantıyı autoreload etkinleştirerek içeri aktarılan modülleri otomatik olarak yeniden yükleyerek komutun bu düzenlemeleri almasını sağlayabilirsiniz. Uzantıyı etkinleştirmek autoreload için herhangi bir not defteri hücresinde veya Python dosyasında aşağıdaki komutları kullanın:

%load_ext autoreload
%autoreload 2

Uzantı autoreload yalnızca Spark sürücü işleminde çalışır ve kodu Spark yürütücü işlemlerine yeniden yüklemez. Spark yürütücüsünü çalıştıran düğümlerde değil yalnızca Spark sürücü düğümünde çalıştığından, çalışan düğümlerinde çalışan modüller geliştirirken (örneğin UDF'ler) kullanmamalısınız autoreload .

Databricks Runtime 16.0 ve üzeri sürümlerine autoreload Databricks'teki uzantı aşağıdaki özellikleri ekler:

  • İşlevler için dahili değişiklikler için modüllerin hedefli yeniden yüklenmesi desteği. Mümkün olduğunda modülün yalnızca değiştirilen kısmını yeniden yüklemek, her nesnenin yalnızca bir dış görünür örneği olmasını sağlar ve bu da daha güvenli ve daha güvenilirdir.
  • Çalışma alanı dosyasından bir Python modülünü içeri aktardığınızda Databricks, modülün son içeri aktarma işleminden sonra değişip değişmediğini otomatik olarak kullanmayı autoreload önerir.

Uzantı hakkında autoreload daha fazla bilgi edinmek için IPython otomatik yükleme belgelerine bakın.

Kodu yeniden düzenleme

Kod geliştirme için en iyi yöntem, kodu kolayca yeniden kullanılabilmesi için modüler hale getirmektir. Çalışma alanı dosyalarıyla özel Python dosyaları oluşturabilir ve deyimini kullanarak import bu dosyalardaki kodu not defteri için kullanılabilir hale getirebilirsiniz.

Not defteri kodunu yeniden kullanılabilir dosyalar halinde yeniden düzenlemek için:

  1. Kodunuz için yeni bir kaynak kod dosyası oluşturun.
  2. Yeni dosyanızdaki kodu not defterinizde kullanılabilir hale getirmek için not defterine Python içeri aktarma deyimleri ekleyin.

Komutlardan %run geçiş

Bir not defterinde tanımlanan Python veya R işlevlerini başka bir not defterinin kullanımına açmak için komutları kullanıyorsanız %run veya bir kümeye özel .whl dosyalar yüklüyorsanız, bu özel modülleri çalışma alanı dosyaları olarak eklemeyi göz önünde bulundurun. Bu şekilde not defterlerinizi ve diğer kod modüllerini eşitlenmiş olarak tutarak not defterinizin her zaman doğru sürümü kullanmasını sağlayabilirsiniz.

%run komutları bir not defterini başka bir not defterine eklemenize olanak tanır ve genellikle python veya R kodunu destekleyen bir not defterinin kullanımına açmak için kullanılır. Bu örnekte, adlı power.py not defteri aşağıdaki kodu içerir.

# This code is in a notebook named "power.py".
def n_to_mth(n,m):
  print(n, "to the", m, "th power is", n**m)

Ardından, içinde tanımlanan power.py işlevleri bir komutla %run farklı bir not defteri için kullanılabilir hale getirebilirsiniz:

# This notebook uses a %run command to access the code in "power.py".
%run ./power
n_to_mth(3, 4)

Çalışma alanı dosyalarını kullanarak Python kodunu içeren modülü doğrudan içeri aktarabilir ve işlevini çalıştırabilirsiniz.

from power import n_to_mth
n_to_mth(3, 4)

Python .whl dosyalarını göreli kitaplıklarda yeniden düzenleme

Özel .whl dosyaları bir kümeye yükleyebilir ve sonra bunları bu kümeye bağlı bir not defterine aktarabilirsiniz. Ancak, bu işlem sık güncelleştirilen kod için hantal ve hataya eğilimli olabilir. Çalışma alanı dosyaları, bu Python dosyalarını kodu kullanan not defterleriyle aynı dizinde tutmanıza olanak sağlayarak not defterinizin her zaman doğru sürümü kullanmasını sağlar.

Python projelerini paketleme hakkında daha fazla bilgi için bu öğreticiye bakın.

Test için Azure Databricks web terminalini kullanma

Dosyayı içeri aktarmak ve çalıştırmak için not defteri kullanmadan Python veya R kodunuzda yapılan değişiklikleri test etmek için Azure Databricks web terminalini kullanabilirsiniz.

  1. Web terminalini açın.
  2. dizinine geçin: cd /Workspace/Users/<path-to-directory>/.
  3. Python veya R dosyasını çalıştırın: python file_name.py veya Rscript file_name.r.