.NET for Apache Spark 首個預覽版

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

.NET for Apache Spark旨在使.NET開發人員能夠跨全部Spark API訪問Apache®Spark™。到目前爲止,Spark已經能夠經過Scala,Java,Python和R訪問,但不能訪問.NET。github

咱們計劃在開放時(做爲.NET Foundation成員項目)與Spark和.NET社區一塊兒爲Apache Spark開發.NET,以確保開發人員充分利用這兩個領域。apache

.NET Spark徽標

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

 

本文的其他部分提供了有關如下主題的更多細節:機器學習

什麼是.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

相關文章
相關標籤/搜索