Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Apache Spark için .NET, Spark için ücretsiz, açık kaynak ve platformlar arası .NET desteği sağlar.
Spark için C# ve F# aracılığıyla Spark API'lerine erişmenizi sağlayan .NET bağlamaları sağlar. Apache Spark için .NET ile, .NET'te yazılmış Spark için kullanıcı tanımlı işlevler de yazabilir ve yürütebilirsiniz. Spark için .NET API'leri Spark SQL, Delta Lake ve Yapılandırılmış Akış dahil olmak üzere verilerinizi analiz etmeye yardımcı olan Spark DataFrame'lerin tüm yönlerine erişmenizi sağlar.
Spark toplu iş tanımları aracılığıyla veya etkileşimli Azure Synapse Analytics not defterleriyle Apache Spark için .NET ile verileri analiz edebilirsiniz. Bu makalede, her iki tekniği de kullanarak Azure Synapse ile Apache Spark için .NET kullanmayı öğreneceksiniz.
Önemli
Apache Spark için .NET, .NET Foundation altında şu anda destek dışı durumuna ulaşmış .NET 3.1 kitaplığını gerektiren açık kaynaklı bir projedir. Azure Synapse Spark kullanıcılarını Apache Spark için Azure Synapse Runtime sürüm 3.3'teki Apache Spark için .NET kitaplığının kaldırılması konusunda bilgilendirmek istiyoruz. Kullanıcılar bu konuyla ilgili daha fazla bilgi için .NET Destek İlkesi'ne başvurabilir.
Sonuç olarak, kullanıcıların artık C# ve F# aracılığıyla Apache Spark API'lerini kullanmaları veya Synapse'teki not defterlerinde veya Synapse'teki Apache Spark İşi tanımları aracılığıyla C# kodu yürütmeleri mümkün olmayacaktır. Bu değişikliğin yalnızca Apache Spark 3.3 ve üzeri için Azure Synapse Runtime'ı etkilediğini unutmayın.
Azure Synapse Runtime'ın önceki tüm sürümlerinde yaşam döngüsü aşamalarına göre Apache Spark için .NET'i desteklemeye devam edeceğiz. Ancak, Apache Spark 3.3 ve sonraki sürümler için Azure Synapse Runtime'da Apache Spark için .NET'i destekleme planlarımız yoktur. C# veya F# ile yazılmış mevcut iş yüklerine sahip kullanıcıların Python veya Scala'ya geçişini öneririz. Kullanıcıların bu bilgileri not almaları ve buna göre planlamaları tavsiye edilir.
Spark iş tanımını kullanarak toplu iş gönderme
Azure Synapse Analytics'i kullanarak Synapse Spark havuzları için Apache Spark iş tanımları oluşturmayı öğrenmek için öğreticiyi ziyaret edin. Uygulamanızı Azure Synapse'e göndermek üzere paketlemediyseniz aşağıdaki adımları tamamlayın.
Synapse Spark ile uyumluluk için uygulama bağımlılıklarınızı
dotnetyapılandırın. Gerekli .NET Spark sürümü, Apache Spark Havuzu yapılandırmanızın altındaki Synapse Studio arabiriminde Yönet araç kutusunun altında belirtilir.
Projenizi Ubuntu x86 yürütülebilir dosyasının çıkışını veren bir .NET konsol uygulaması olarak oluşturun.
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.1</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.Spark" Version="2.1.0" /> </ItemGroup> </Project>Uygulamanızı yayımlamak için aşağıdaki komutları çalıştırın. mySparkApp yerine uygulamanızın yolunu değiştirmeyi unutmayın.
cd mySparkApp dotnet publish -c Release -f netcoreapp3.1 -r ubuntu.18.04-x64Örneğin,
publish.zip1. Adım'ın bir sonucu olarak oluşturulan yayımlama klasörünün içeriğini sıkıştırın. Tüm derlemeler ZIP dosyasının kökünde olmalı ve ara klasör katmanı olmamalıdır. This means when you unzippublish.zip, all assemblies are extracted into your current working directory.Windows'da:
Windows PowerShell veya PowerShell 7 kullanarak yayımlama dizininizin içeriğinden bir .zip oluşturun.
Compress-Archive publish/* publish.zip -UpdateLinux'ta:
Open a bash shell and cd into the bin directory with all the published binaries and run the following command.
zip -r publish.zip
.NET for Apache Spark in Azure Synapse Analytics notebooks
Not defterleri Apache Spark işlem hatları ve senaryoları için .NET'inizin prototipini oluşturmak için harika bir seçenektir. Verilerinizi hızlı ve verimli bir şekilde kullanmaya, anlamaya, filtrelemeye, görüntülemeye ve görselleştirmeye başlayabilirsiniz.
Veri mühendisleri, veri bilimcileri, iş analistleri ve makine öğrenmesi mühendislerinin tümü paylaşılan, etkileşimli bir belge üzerinde işbirliği yapabilir. Veri keşfinin hemen sonuçlarını görürsünüz ve verilerinizi aynı not defterinde görselleştirebilirsiniz.
How to use .NET for Apache Spark notebooks
Yeni bir not defteri oluşturduğunuzda, iş mantığınızı ifade etmek istediğiniz bir dil çekirdeği seçersiniz. Çekirdek desteği C# dahil olmak üzere çeşitli dillerde kullanılabilir.
Azure Synapse Analytics not defterinizde Apache Spark için .NET kullanmak için çekirdek olarak .NET Spark (C#) öğesini seçin ve not defterini mevcut sunucusuz apache Spark havuzuna ekleyin.
.NET Spark not defteri, .NET etkileşimli deneyimlerini temel alır ve önceden tanımlanmış Spark oturum değişkeni spark ile Spark için .NET'i kullanıma hazır bir şekilde kullanma özelliğine sahip etkileşimli C# deneyimleri sunar.
Not defterlerine NuGet paketlerini yükleme
NuGet paketinin adından önce sihirli komutunu kullanarak #r nuget kendi seçtiğiniz NuGet paketlerini not defterinize yükleyebilirsiniz. Aşağıdaki diyagramda bir örnek gösterilmektedir:
Not defterlerinde NuGet paketleriyle çalışma hakkında daha fazla bilgi edinmek için .NET Etkileşimli Belgeleri'ne bakın.
Apache Spark C# çekirdek özellikleri için .NET
Azure Synapse Analytics not defterinde Apache Spark için .NET kullandığınızda aşağıdaki özellikler kullanılabilir:
- Declarative HTML: Generate output from your cells using HTML-syntax, such as headers, bulleted lists, and even displaying images.
- Basit C# deyimleri (atamalar, konsola yazdırma, özel durumlar oluşturma vb.).
- Çok satırlı C# kod blokları (if deyimleri, foreach döngüleri, sınıf tanımları vb.).
- Standart C# kitaplığına (Sistem, LINQ, Numaralandırılabilir öğeler vb.) erişim.
- C# 8.0 dil özellikleri desteği.
-
sparkApache Spark oturumunuza erişmenizi sağlamak için önceden tanımlanmış bir değişken olarak. - Apache Spark içinde çalışabilen .NET kullanıcı tanımlı işlevleri tanımlama desteği. Apache Spark Etkileşimli deneyimleri için .NET'te UDF'lerin nasıl kullanılacağını öğrenmek için Apache Spark Etkileşimli ortamları için .NET'te UDF yazmanızı ve çağırmanızı öneririz.
- Support for visualizing output from your Spark jobs using different charts (such as line, bar, or histogram) and layouts (such as single, overlaid, and so on) using the
XPlot.Plotlylibrary. - C# not defterinize NuGet paketleri ekleme olanağı.
Sorun giderme
OutOfMemoryError: java heap space at org.apache.spark
Dotnet Spark 1.0.0, 1.1.1+ değerinden farklı bir hata ayıklama mimarisi kullanır. Yayımlanan sürümünüz için 1.0.0 ve yerel hata ayıklama için 1.1.1+ kullanmanız gerekir.