1. 程式人生 > >.NET for Apache Spark 首個預覽版

.NET for Apache Spark 首個預覽版

今天在Spark + AI峰會上, 我們很高興地宣佈 .NET for Apache Spark 。 Spark是一種流行的開源分散式處理引擎,適用於大型資料集的分析。Spark可用於處理批量資料,實時流,機器學習和即席查詢。

.NET for Apache Spark旨在使.NET開發人員可以跨所有Spark API訪問Apache®Spark™。到目前為止,Spark已經可以通過Scala,Java,Python和R訪問,但不能訪問.NET。

我們計劃在開放時(作為.NET Foundation成員專案)與Spark和.NET社群一起為Apache Spark開發.NET,以確保開發人員充分利用這兩個領域。

.NET Spark徽標

https://github.com/dotnet/spark 

 Star

 

本文的其餘部分提供了有關以下主題的更多細節:

什麼是.NET for Apache Spark?

用於Apache Spark的.NET提供了高效能API,用於使用C#和F#中的Spark。使用此.NET API,您可以訪問Apache Spark的所有方面,包括Spark SQL,DataFrames,Streaming,MLLib等。用於Apache Spark的.NET允許您重用已有的所有知識,技能,程式碼和庫作為.NET開發商。

繫結到Spark的C#/ F#語言將寫在一個新的Spark互操作層上,它提供了更容易的擴充套件性。編寫了這個新的Spark interop層,記住了語言擴充套件的最佳實踐,並優化了互操作性和效能。從長遠來看,這種可擴充套件性可用於在Spark中新增對其他語言的支援。

您可以通過此提案瞭解有關此工作的更多詳細資訊。

.NET Spark效能

.NET for Apache Spark符合.NET Standard 2.0,可以在Linux,macOS和Windows上使用,就像.NET的其餘部分一樣。.NET for Apache Spark在Azure HDInsight中預設可用,並且可以安裝在Azure Databricks等中。

.NET for Apache Spark入門

在開始使用.NET for Apache Spark之前,您需要安裝一些東西。按照以下步驟開始使用.NET for Apache Spark

設定完成後,您可以通過三個簡單步驟開始在.NET中編寫Spark應用程式。

在我們的第一個.NET Spark應用程式中,我們將編寫一個基本的Spark管道,用於計算文字段中每個單詞的出現次數。

         
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 // 1. Create a Spark session var spark = SparkSession     .Builder()     .AppName("word_count_sample")     .GetOrCreate();   // 2. Create a DataFrame DataFrame dataFrame = spark.Read().Text("input.txt");   // 3. Manipulate and view data var words = dataFrame.Select(Split(dataFrame["value"], " ").Alias("words"));   words.Select(Explode(words["words"])     .Alias("word"))     .GroupBy("word")     .Count()     .Show();

 

.NET for Apache Spark效能

我們很高興地說,Apache Spark的第一個預覽版本在流行的TPC-H基準測試中表現良好。TPC-H基準包含一套面向業務的查詢。下圖說明了在TPC-H查詢集上.NET Core與Python和Scala的效能。

.NET Spark效能

上圖顯示了針對Apache Spark與Python和Scala的.NET的每個查詢效能。.NET for Apache Spark在Python和Scala上執行良好。此外,在UDF效能至關重要的情況下,例如查詢1,其中在JVM和CLR .NET之間傳遞3B行非字串資料,Apache Spark比Python快2倍。

同樣重要的是要說這是我們為Apache Spark首次推出的.NET,我們的目標是進一步投資改進和基準效能(例如Arrow優化)。您可以按照我們的說明在我們的GitHub倉庫上對此進行基準測試。

.NET for Apache Spark的下一步是什麼

今天標誌著我們旅程的第一步。以下是我們近期路線圖的一些功能。請遵循我們的GitHub倉庫完整路線圖

  • 簡化入門體驗,文件和示例
  • 與Visual Studio,Visual Studio Code,Jupyter筆記本等開發人員工具進行本機整合
  • .NET支援使用者定義的聚合函式
  • 用於C#和F#的.NET慣用API(例如,使用LINQ編寫查詢)
  • 開發即用支援Azure Databricks,Kubernetes等。
  • 為Spark Spark建立.NET for Spark Spark。您可以
    在此處關注此進度。

看到此列表中缺少的內容,請在下面給我們留言

包起來

.NET for Apache Spark是我們將.NET打造成構建大資料應用程式的重要技術堆疊的第一步。

我們需要您的幫助來塑造Apache Spark的未來,我們期待看到您使用.NET為Apache Spark構建的內容。您可以通過我們的GitHub倉庫向我們提供聯絡。

https://github.com/dotnet/spark<