Databricks not defterlerinde kod geliştirme

Bu sayfada, databricks not defterlerinde kod biçimlendirme, otomatik tamamlama, dilleri karıştırma ve sihirli komutlar gibi kod geliştirme işlemleri açıklanmaktadır.

Gelişmiş işlevler hakkında daha fazla bilgi için, örneğin otomatik tamamlama, değişken seçimi, çoklu imleç desteği ve yan yana karşılaştırmalar, Databricks Not Defteri ve Dosya Düzenleyicisine gezinmebölümüne bakın.

Not defterini veya dosya düzenleyicisini kullandığınızda Genie Code, kod oluşturmanıza, açıklamanıza ve hata ayıklamanıza yardımcı olur. Daha fazla bilgi için bkz Genie Kodunu Kullan.

Databricks not defterleri, Python not defterleri için yerleşik bir etkileşimli hata ayıklayıcı da içerir. Bkz. Not defterlerinde hata ayıklama.

Önemli

Otomatik tamamlama, Python kod biçimlendirmesi ve hata ayıklayıcı gibi kod yardımı özellikleri için not defterinin etkin bir compute oturumuna eklenmesi gerekir.

Kodunuzu modüler hale

Databricks Runtime 11.3 LTS ve üzeri sürümleriyle, Azure Databricks çalışma alanında kaynak kod dosyaları oluşturup yönetebilir ve sonra bu dosyaları gerektiğinde not defterlerinize aktarabilirsiniz.

Kaynak kod dosyalarıyla çalışma hakkında daha fazla bilgi için bkz. Databricks defterleri arasında kod paylaşma ve Python ve R modülleriyle çalışma.

Kod hücrelerini biçimlendirme

Azure Databricks, not defteri hücrelerinde Python ve SQL kodunu biçimlendirmenize olanak sağlayan araçlar sağlar. Bu araçlar kodunuzu biçimlendirilmiş tutma çabasını azaltır ve not defterlerinizde aynı kodlama standartlarının uygulanmasına yardımcı olur.

Python siyah biçimlendirici kitaplığı

Önemli

Bu özellik Genel Önizlemededir.

Azure Databricks, not defterindeki black kullanarak Python kod biçimlendirmesini destekler. Not defteri, black ve tokenize-rt Python paketlerinin yüklü olduğu bir kümeye eklenmelidir.

Databricks Runtime 11.3 LTS ve üzerinde, Azure Databricks black ve tokenize-rt önyükler. Bu kitaplıkları yüklemenize gerek kalmadan biçimlendiriciyi doğrudan kullanabilirsiniz.

Databricks Runtime 10.4 LTS ve altında, Python biçimlendiricisini kullanmak için not defterinize veya kümenize PyPI'den black==22.3.0 ve tokenize-rt==4.2.1 yüklemeniz gerekir. Not defterinizde aşağıdaki komutu çalıştırabilirsiniz:

%pip install black==22.3.0 tokenize-rt==4.2.1

veya kitaplığı kümenize yükleyin.

Kitaplıkları yükleme hakkında daha fazla bilgi için bkz. Python ortam yönetimi.

Databricks Git klasörlerindeki dosyalar ve not defterleri için Python biçimlendiriciyi pyproject.toml dosyasına göre yapılandırabilirsiniz. Bu özelliği kullanmak için Git klasörü kök dizininde bir pyproject.toml dosya oluşturun ve Siyah yapılandırma biçimine göre yapılandırın. Dosyadaki [tool.black] bölümünü düzenleyin. Yapılandırma, bu Git klasöründeki herhangi bir dosyayı ve not defterini biçimlendirdiğinizde uygulanır.

Python ve SQL hücrelerini biçimlendirme

Kodu biçimlendirmek için not defterinde CAN EDIT izniniz olmalıdır.

Azure Databricks, SQL'i biçimlendirmek için özel bir SQL biçimlendiricisi ve Python için black kod biçimlendiricisini kullanır.

Biçimlendiriciyi aşağıdaki yollarla tetikleyebilirsiniz:

  • Tek bir hücreyi biçimlendirme

    • Klavye kısayolu: Cmd+Shift+F tuşlarına basın.
    • Komut bağlam menüsü:
      • SQL hücresini biçimlendir: Bir SQL hücresinde komut bağlamı açılır menüsünden Format SQL seçeneğini seçin. Bu menü öğesi yalnızca SQL not defteri hücrelerinde veya dil büyüsüne sahip %sqlhücrelerde görünür.
      • Python hücreyi biçimlendir: Python hücresinin komut bağlamı açılan menüsünde Format Python öğesini seçin. Bu menü öğesi yalnızca Python not defteri hücrelerinde veya %pythonlanguage magic olan hücrelerde görünür.
    • Not Defteri Düzenle menüsü: bir Python veya SQL hücresi seçin ve ardından Düzenle > Hücre biçimlendir öğesini seçin.
  • Birden çok hücreyi biçimlendirme

    Birden çok hücre seçin ve ardından Düzenle menüsünden > Hücreleri Biçimlendirseçeneğini seçin. Birden fazla dilde hücre seçerseniz, yalnızca SQL ve Python hücreleri biçimlendirilir. Bu, %sql ve %python kullananları içerir.

  • Not defterindeki tüm Python ve SQL hücrelerini biçimlendirin

    Not Defterini Biçimlendir Düzenle> seçin. Not defteriniz birden fazla dil içeriyorsa, yalnızca SQL ve Python hücreleri biçimlendirilir. Bu, %sql ve %python kullananları içerir.

SQL sorgularınızın nasıl biçimlendirildiğini özelleştirmek için bkz. Özel biçim SQL deyimleri.

Kod biçimlendirme sınırlamaları

  • Black, PEP 8 standartlarını 4 boşluklu girinti için uygular. Girinti ayarı yapılandırılamaz.
  • SQL UDF içinde eklenmiş Python dizeleri biçimlendirme desteklenmez. Benzer şekilde, Python UDF içindeki SQL dizelerini biçimlendirme desteklenmez.

Not defterlerindeki kod dilleri

Varsayılan dili ayarla

Not defterinin varsayılan dili not defteri adının altında görünür.

Not Defteri Varsayılan Dili

Varsayılan dili değiştirmek için dil düğmesine tıklayın ve açılan menüden yeni dili seçin. Mevcut komutların çalışmaya devam ettiğinden emin olmak için, önceki varsayılan dilin komutlarına otomatik olarak bir dil sihirli komutu eklenir.

Dilleri karıştırın

Varsayılan olarak, hücreler not defterinin varsayılan dilini kullanır. Dil düğmesine tıklayıp açılan menüden bir dil seçerek hücredeki varsayılan dili geçersiz kılabilirsiniz.

Açılır liste hücre dili

Alternatif olarak, hücrenin başındaki language magic komutunu %<language> kullanabilirsiniz. Desteklenen sihirli komutlar şunlardır: %python, %r, %scalave %sql.

Not

Bir dil sihirli komutunu çağırdığınızda, komut not defterinin yürütme bağlamında REPL'ye gönderilir. Bir dilde (ve dolayısıyla bu dil için REPL'de) tanımlanan değişkenler başka bir dilin REPL'sinde kullanılamaz. REPL'ler durumu yalnızca DBFS'deki dosyalar veya nesne depolamadaki nesneler gibi dış kaynaklar aracılığıyla paylaşabilir.

Not defterleri birkaç yardımcı sihirli komutu da destekler:

  • %sh: Defterinizde kabuk kodu çalıştırmanıza olanak tanır. Kabuk komutunun çıkış durumu sıfır değilse hücreyi başarısız kılmak için -e seçeneğini ekleyin. Bu komut yalnızca Apache Spark sürücüsünde çalışır, çalışanlar üzerinde çalışmaz. Tüm düğümlerde bir komut satırı komutu çalıştırmak için bir init betiği kullanın.
  • %fs: Dosya sistemi komutlarını kullanmanıza dbutils izin verir. Örneğin, dosyaları listelemek için dbutils.fs.ls komutunu çalıştırmak için bunun yerine %fs ls belirtebilirsiniz. Daha fazla bilgi için bkz. Azure Databricks üzerindeki dosyalarla çalışma.
  • %md: Metin, resimler, matematiksel formüller ve denklemler dahil olmak üzere çeşitli belge türlerini eklemenize olanak tanır. Sonraki bölüme bakın.

Python komutlarında SQL söz dizimi vurgulama ve otomatik tamamlama

sözdizimi vurgulama ve SQL *autocomplete*, SQL'i bir Python komutu içinde kullandığınızda, örneğin bir komutunda, kullanılabilir.

SQL hücre sonuçlarını keşfedin

Databricks not defterinde, SQL dil hücresinden elde edilen sonuçlar değişkenine _sqldfatanmış örtük bir DataFrame olarak otomatik olarak kullanılabilir hale gelir. Daha sonra bu değişkeni, not defterindeki konumlarından bağımsız olarak çalıştırdığınız tüm Python ve SQL hücrelerinde kullanabilirsiniz.

Not

Bu özellik aşağıdaki sınırlamalara sahiptir:

  • Değişken_sqldf, işlem için SQL ambarı kullanan not defterlerinde kullanılamaz.
  • Sonraki Python hücrelerde _sqldf kullanılması Databricks Runtime 13.3 ve sonraki sürümleri için desteklenir.
  • Takip eden SQL hücrelerinde _sqldf kullanılması yalnızca Databricks Runtime 14.3 ve sonraki sürümleri için desteklenir.
  • CACHE TABLE veya UNCACHE TABLE anahtar sözcükleri sorguda kullanılıyorsa, _sqldf değişkeni kullanılamaz.

Aşağıdaki ekran görüntüsünde, _sqldf sonraki Python ve SQL hücrelerinde nasıl kullanılabileceğini gösterilmektedir:

sql sonuçları veri çerçevesi

Önemli

Sql hücresi her çalıştırıldığında değişken _sqldf yeniden atanır. Belirli bir DataFrame sonucuna başvurunun kaybolmasını önlemek için, sonraki SQL hücresini çalıştırmadan önce bunu yeni bir değişken adına atayın:

Python

new_dataframe_name = _sqldf

SQL

ALTER VIEW _sqldf RENAME TO new_dataframe_name

SQL hücrelerini paralel olarak çalıştırma

Bir komut çalışırken ve not defteriniz etkileşimli bir kümeye bağlıyken, geçerli komutla aynı anda bir SQL hücresi çalıştırabilirsiniz. SQL hücresi yeni, paralel bir oturumda yürütülür.

Bir hücreyi paralel olarak çalıştırmak için:

  1. Hücreyi çalıştırın.

  2. Şimdi çalıştır üzerine tıklayın. Hücre hemen çalıştırılır.

    Geçerli çalışan hücreyle paralel olarak bir SQL hücresi çalıştırın.

Hücre yeni bir oturumda çalıştırıldığından, paralel olarak yürütülen hücreler için geçici görünümler, UDF'ler ve implicit Python DataFrame (_sqldf) desteklenmez. Ayrıca, varsayılan katalog ve veritabanı adları paralel yürütme sırasında kullanılır. Kodunuz farklı bir katalog veya veritabanındaki bir tabloya başvuruyorsa, tablo adını üç düzeyli ad alanını (catalog.schema.table) kullanarak belirtmeniz gerekir.

SQL ambarı üzerinde SQL hücreleri çalıştırma

SQL analiz için iyileştirilmiş bir işlem türü olan SQL ambarı üzerindeki Databricks not defterinde SQL komutlarını çalıştırabilirsiniz. Bkz. SQL ambarı ile not defteri kullanma.

Sihirli komutları kullanma

Databricks not defterleri, yaygın görevleri basitleştirmek için işlevselliği standart söz dizimlerinin ötesine genişleten çeşitli sihirli komutları destekler. Satır büyüleri % ön eki ile başlar ve tek bir satıra uygulanır. Hücre büyülerine ön ek eklenir %% ve tüm hücre gövdesine uygulanır.

Büyü komutu Örnek Açıklama
%python %python
print("Hello")
Hücre dilini Python olarak değiştirin. Hücrede Python kodu yürütür.
%r %r
print("Hello")
Hücre dilini R olarak değiştirin. Hücrede R kodunu yürütür.
%scala %scala
println("Hello")
Hücre dilini Scala'ya değiştirin. Hücrede Scala kodunu yürütür.
%sql %sql
SELECT * FROM table
Hücre dilini SQL'e değiştirin. Sonuçlar, Python/SQL hücrelerinde _sqldf olarak kullanılabilir.
%md %md
# Title
Content here
Hücre dilini Markdown olarak değiştirin. Hücrede Markdown içeriğini görüntüler. Metinleri, resimleri, formülleri ve LaTeX'i destekler.
%pip %pip install pandas Python paketleri yükleyin (deftere özgü). Bakınız Notebook kapsamlı Python kitaplıkları.
%run %run /path/to/notebook İşlevlerini ve değişkenlerini içeri aktararak başka bir notebook çalıştırır. Bkz . Not defteri iş akışları.
%fs %fs ls /path dbutils dosya sistemi komutlarını yürütür. dbutils.fs komutları için kısaltma. Bkz . Dosyalarla çalışma.
%sh %sh ls -la Kabuk komutlarını yürütme. Yalnızca sürücü düğümünde çalışır. Hata durumunda başarısız olmak için -e kullanın.
%tensorboard %tensorboard --logdir /logs TensorBoard kullanıcı arabirimini satır içinde görüntüleyin. Yalnızca Databricks Runtime ML'de kullanılabilir. Bkz. TensorBoard.
%set_cell_max_output_size_in_mb %set_cell_max_output_size_in_mb 10 En büyük hücre çıkış boyutunu ayarlayın. Aralık: 1-20 MB. Not defterindeki sonraki tüm hücreler için geçerlidir.
%skip %skip
print("This won't run")
Hücre yürütmeyi atlayın. Not defteri çalıştırılırken hücrenin çalışmasını engeller.
%%profile %%profile
my_function()
Profil Python kod yürütme. Zamanlama bilgilerini içeren hiyerarşik bir çağrı ağacı görüntüler. Databricks Runtime 17.2 ve üzerini gerektirir.
%%oprofile %%oprofile
my_function()
Hücre yürütme sırasında profil nesnesi oluşturma. Türe göre gruplandırılmış, oluşturulan net yeni nesnelerden oluşan bir tablo görüntüler. Databricks Runtime 17.2 ve üzerini gerektirir.

Not

IPython Automagic: Databricks not defterlerinde IPython automagic varsayılan olarak etkindir ve bu sayede ön ek olmadan pip çalışmak gibi % bazı komutlar kullanılabilir. Örneğin, pip install pandas ile %pip install pandasaynı şekilde çalışır.

Önemli

  • Değişkenler ve durum, farklı dil REPL'leri arasında yalıtılır. Örneğin, Python değişkenler Scala hücrelerinde erişilebilir değildir.
  • Not defteri hücresinde yalnızca bir hücre sihirli komutu olabilir ve bu komut hücrenin ilk satırında yer almalıdır.
  • %run tüm not defterini satır içi çalıştırdığı için kendi hücresinde tek başına olmalıdır.
  • Databricks Runtime 12.2 LTS ve altında %pip kullanırken, yükleme sonrasında Python durumu sıfırlandığından tüm paket yükleme komutlarını not defterinizin başına yerleştirin.