Databricks not defterlerinde kod geliştirme
Bu sayfada, otomatik tamamlama, Python ve SQL için otomatik biçimlendirme, not defterinde Python ve SQL'i birleştirme ve not defteri sürüm geçmişini izleme gibi Databricks not defterlerinde kod geliştirme adımları 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 bkz . Databricks Yardımcısı'nı kullanma.
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.
Kodunuzu modüler hale
Önemli
Bu özellik Genel Önizlemededir.
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. Not defterinin ve black
Python paketlerinin yüklü olduğu bir kümeye tokenize-rt
eklenmesi gerekir.
Databricks Runtime 11.3 LTS ve üzeri üzerinde Azure Databricks ve black
'yi önceden yüklürtokenize-rt
. 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 ve yüklemeniz black==22.3.0
tokenize-rt==4.2.1
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 ve Python için siyah kod biçimlendiricisini biçimlendirmek için Gethue/sql-formatter kitaplığını 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: SQL hücresinin komut bağlamı açılan menüsünde sql biçimlendirme
seçin. Bu menü öğesi yalnızca SQL not defteri hücrelerinde veya dil büyüsüne sahip %sql
hü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
%python
hücrelerde görünür.
- SQL hücresini biçimlendir: SQL hücresinin komut bağlamı açılan menüsünde sql biçimlendirme
- Not Defteri
Düzenle menüsü: Bir Python veya SQL hücresi seçin ve ardından Düzenle Hücre biçimlendirme 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, ve
%sql
kullananları%python
içerir.Not defterindeki tüm Python ve SQL hücrelerini biçimlendirme
Not Defterini Düzenle
Biçimlendir seçin. Not defteriniz birden fazla dil içeriyorsa, yalnızca SQL ve Python hücreleri biçimlendirilir. Bu, ve %sql
kullananları%python
içerir.
Kod biçimlendirme sınırlamaları
- Siyah, 4 boşluklu girinti için PEP 8 standartlarını uygular. Girinti 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 yanında görünür.
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ırma
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.
Alternatif olarak, bir hücrenin başındaki language magic komutunu %<language>
kullanabilirsiniz. Desteklenen sihirli komutlar şunlardır: %python
, %r
, %scala
ve %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
: Not defterinizde kabuk kodu çalıştırmanıza olanak tanır. Kabuk komutunun çıkış durumu sıfır olmayansa hücreyi başarısız yapmak için seçeneğini ekleyin-e
. Bu komut yalnızca Apache Spark sürücüsünde çalışır, çalışanlar üzerinde çalışmaz. Tüm düğümlerde kabuk komutu çalıştırmak için bir init betiği kullanın. -
%fs
: Dosya sistemi komutlarını kullanmanızadbutils
izin verir. Örneğin, dosyaları listelemek içindbutils.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
Söz dizimi vurgulama ve SQL otomatik tamamlama , komut gibi spark.sql
bir Python komutunun içinde SQL kullandığınızda kullanılabilir.
SQL hücre sonuçlarını keşfetme
Databricks not defterinde, SQL dil hücresinden elde edilen sonuçlar değişkenine _sqldf
atanmış ö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 kullanmak
_sqldf
Databricks Runtime 13.3 ve sonraki sürümleri için desteklenir. - Sonraki SQL hücrelerinde kullanılması
_sqldf
yalnızca Databricks Runtime 14.3 ve sonraki sürümleri için desteklenir. - Sorgu veya
CACHE TABLE
UNCACHE TABLE
anahtar sözcüklerini_sqldf
kullanıyorsa 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:
Ö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 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:
Hücreyi çalıştırın.
Şimdi çalıştır üzerine tıklayın. Hücre hemen yürütülür.
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.