Spark kodunu çalıştırma

Tamamlandı

Microsoft Fabric'te Spark kodunu düzenlemek ve çalıştırmak için not defterlerini kullanabilir veya bir Spark işi tanımlayabilirsiniz.

Notebooks

Spark'ı kullanarak verileri etkileşimli olarak incelemek ve çözümlemek istediğinizde, bir not defteri kullanın. Not defterleri, başkalarıyla paylaşabileceğiniz ve işbirliği yapabileceğiniz etkileşimli bir öğe oluşturmak için birden çok dilde yazılmış metin, resim ve kodu birleştirmenizi sağlar.

Microsoft Fabric'te bir not defterinin ekran görüntüsü.

Not defterleri, her biri markdown biçimli içerik veya yürütülebilir kod içerebilen bir veya daha fazla hücreden oluşur. Kodu not defterinde etkileşimli olarak çalıştırabilir ve sonuçları hemen görebilirsiniz.

Kod ve markdown hücreleri

Not defterleri hücreleri kod veya markdown metni içerir, ancak ikisini birden içermez. Var olan bir kod hücresini markdown'a dönüştürmek için M'yi seçin. Markdown hücresini koda dönüştürmek için /> öğesini seçin<.

Markdown hücreleri, metni biçimlendirmenize ve resim eklemenize olanak sağlayan bir metin araç çubuğu içerir. Not defterine markdown hücreleri ekleme özelliği güçlüdür. Kodunuz hakkında açıklamalar eklemenize, belirli işlemlerin neden yapıldığını, neden ve neleri başarmaya çalıştığınızı belgelemeye olanak tanır. Bu özellik not defterini daha sonra daha kullanışlı hale getirmekle kalmaz, aynı zamanda işbirliğini de geliştirir.

Kod dilleri

PySpark (Python'ın Spark'a özgü bir uygulaması), Microsoft Fabric not defterleri için varsayılan dildir, ancak Scala (Java tabanlı yorumlanmış dil)), Spark SQL veya SparkR'yi de seçebilirsiniz. Veri mühendisliği ve analiz iş yüklerinin çoğu PySpark ve Spark SQL birleşimi kullanılarak gerçekleştirilir.

Not defterinin varsayılan dilini değiştirebilir (tüm kod hücrelerini etkiler) veya bir hücredeki sihirli komutu kullanarak yalnızca o hücre için varsayılan dili geçersiz kılabilirsiniz. Örneğin, aşağıdaki koddaki sihirli komut, %%sql hücrenin programlama dilini Spark SQL olarak değiştirir:

%%sql
SELECT YEAR(OrderDate) AS OrderYear,
       SUM((UnitPrice * Quantity) + Tax) AS GrossRevenue
FROM salesorders
GROUP BY YEAR(OrderDate)
ORDER BY OrderYear;

Programlama dilini PySpark olarak değiştirmek için %%pyspark kullanın. Ya da programlama dilini Scala olarak değiştirmek için %%spark . Hücrenin sağ alt kısmındaki açılan menü, sihirli bir komut eklemek için de kullanılabilir.

Not

Sihirli komutlar büyük/küçük harfe duyarlıdır.

Not defterindeki kod genellikle tek tek hücreler çalıştırılarak veya not defterindeki tüm hücreler çalıştırılarak etkileşimli olarak çalıştırılır. Ayrıca, etkileşimli olmayan bir şekilde çalıştırılacak bir not defteri zamanlayabilirsiniz.

Spark iş tanımları

Otomatik bir işlemin parçası olarak verileri almak ve dönüştürmek için Spark kullanmak istiyorsanız, isteğe bağlı olarak veya zamanlamaya göre bir betik çalıştırmak için bir Spark işi tanımlayabilirsiniz.

Microsoft Fabric'te Spark iş tanımının ekran görüntüsü.

Spark işini yapılandırmak için çalışma alanınızda bir Spark İş Tanımı oluşturun ve çalıştırılması gereken betiği belirtin. Ayrıca bir başvuru dosyası (örneğin, betiğinizde kullanılan işlevlerin tanımlarını içeren bir Python kod dosyası) ve betiğin işlediği verileri içeren belirli bir lakehouse başvurusu belirtebilirsiniz.

Komut satırı bağımsız değişkenlerini de belirtebilirsiniz. Bu sayede betiğin davranışı, ona geçirilen bağımsız değişkenlere bağlı olarak değişir. Aynı Spark işi birden çok bağlamda kullanılacaksa bu yaklaşım yararlı olabilir (örneğin, dosyalardan tablolara veri yüklemek için tek bir betik kullanabilir ve çalıştırdığınızda dosya yolunu ve tablo adını değiştirebilirsiniz).

Not defterini ve iş yürütmeyi zamanlama

Not defterinin veya Spark iş tanımının belirli bir aralıkta katılımsız çalıştırılması için bir zamanlama tanımlayabilirsiniz. Bu yaklaşım, betik oluşturulabilen ve daha karmaşık bir veri alımı veya işleme iş yükünün parçası olmayan basit otomatik görevler için yararlı olabilir. Çoğu üretim ortamında, daha yönetilebilir bir çözüm, not defterini veya Spark iş tanımını daha karmaşık bir düzenleme çözümüyle tümleştirilebilen bir işlem hattına dahil etmektir.

Not

Kodu bir not defterinde veya Spark iş tanımında etkileşimli olarak çalıştırdığınızda, kod şu anda oturum açmış olan kullanıcının güvenlik bağlamında çalışır. Bir zamanlama kullanarak çalıştırıldığında kod, zamanlamayı oluşturan kullanıcının kimliğini varsayar. Bir işlem hattında çalıştırıldığında kod, işlem hattının sahibi olan kullanıcının kimliğini kullanır.

Kodun nasıl çalıştırıldığına bakılmaksızın, güvenlik bağlamında kullanılan kimliğin bir göl evindeki tablolar veya dosyalar da dahil olmak üzere kod tarafından başvuruda bulunan kaynaklara erişmek için yeterli izinlere sahip olduğundan emin olmanız gerekir.