Aracılığıyla paylaş


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, kod oluşturmanıza, açıklamanıza ve hata ayıklamanıza yardımcı olmak için Databricks Yardımcısı kullanılabilir. Daha fazla bilgi için Databricks Yardımcısı'nı kullanma bölümüne bakın.

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 işlem oturumuna eklenmesi gerekir.

Kodunuzu modüler hale

Databricks Runtime 11.3 LTS ve üzeri ile Azure Databricks çalışma alanında kaynak kod dosyaları oluşturup yönetebilir ve ardından bu dosyaları gerektiği gibi not defterlerinize aktarabilirsiniz.

Kaynak kod dosyalarıyla çalışma hakkında daha fazla bilgi için bkz . Databricks not 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 hızlı ve kolay bir şekilde biçimlendirmenizi 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 defteri içinde siyah kullanarak Python kod biçimlendirmesini destekler. Defterin, black ve tokenize-rt Python paketlerinin yüklü olduğu bir kümeye bağlanması gerekir.

Databricks Runtime 11.3 LTS ve üzeri sürümlerde, Azure Databricks black ve tokenize-rt'yi önceden yü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 ayrıntı için bkz . Python ortam yönetimi.

Databricks Git klasörlerindeki dosyalar ve not defterleri için Python biçimlendiricisini dosyaya pyproject.toml 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 siyah kod biçimlendirici 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ücresini biçimlendirme: Bir Python hücresinin komut bağlamı açılan menüsünde Format Python seçeneğini seçin. Bu menü öğesi yalnızca Python not defteri hücrelerinde veya dil büyüsüne sahip %pythonhücrelerde görünür.
    • Not Defteri Düzenle menüsü: Bir Python veya SQL hücresini seçin ve ardından > seçeneğini 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çimlendirme

    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çindeki eklenmiş Python dizelerini 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, bir 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'te 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

tr-TR: Söz dizimi vurgulama ve SQL otomatik tamamlama, bir Python komutunda, örneğin bir spark.sql komutunda, SQL kullandığınızda 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 daha sonra ç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ücrelerinde _sqldf kullanımı, Databricks Runtime 13.3 ve üzerindeki sürümlerde desteklenmektedir.
  • 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ü, sonraki Python ve SQL hücrelerinde nasıl _sqldf kullanılabileceğini gösterir:

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:

Piton

new_dataframe_name = _sqldf

SQL

ALTER VIEW _sqldf RENAME TO new_dataframe_name

SQL hücrelerini paralel olarak yürütme

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 yürütmek 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 örtük 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 yürütme

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. Sihirli komutlar, satır ve hücre büyülerine % önüne eklenir.

Büyü komutu Örnek Açıklama
%python %python
print("Hello")
Hücre dilini Python'a değiştirin. Hücrede Python kodunu 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 _sqldf olarak Python/SQL hücrelerinde mevcuttur.
%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 paketlerini yükleme (not defteri kapsamlı). Bkz. Notebook kapsamındaki Python kütüphaneleri.
%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.

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şkenlerine Scala hücrelerinde erişilemez.
  • 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ını kullanırken %pip, yükleme sonrası Python durumu sıfırlanır, bu nedenle tüm paket yükleme komutlarını not defterinizin başına yerleştirmeniz gerekiyor.