.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

相关文章
相关标签/搜索