今天早上六点半左右微信群里就看到张队发的关于.NET Spark大数据的链接https://devblogs.microsoft.com/dotnet/introducing-net-for-apache-spark/ ,正印证了“微软在不断通过.NET Core补齐各领域开发,真正实现一种语言的跨平台”这句话。那么我们今天就来看看这个 .NET for Apache Spark到底是个什么鬼?

作者:依乐祝
原文链接:https://www.cnblogs.com/yilezhu/p/10767910.html

什么是.NET for Apache Spark?

我们都知道Spark是一种流行的开源分布式处理引擎,适用于大型数据集(通常是TB级别)的分析。Spark可用于处理批量数据,实时流,机器学习和即时查询。处理任务分布在一个节点集群上,数据被缓存在内存中,以减少计算时间。到目前为止,Spark已经可以通过Scala,Java,Python和R访问,却不能通过.NET进行访问。

而.NET for Apache Spark就是旨在使.NET开发人员可以跨所有Spark API访问Apache®Spark™。

.NET for Apache Spark为C#和F#提供了高性能的API来操作Spark。使用这个.NET API,您可以访问Apache Spark的所有功能,包括SparkSQL、DataFrames、流、MLLib等等。.NET for Apache Spark允许您重用作为.NET开发人员已经拥有的所有知识、技能、代码和库。

C#/F#语言绑定到Spark将被写入一个新的Spark交互层,这提供了更容易的扩展性。这一新的Spark交互层的编写考虑了语言扩展的最佳实践,并针对交互和性能进行了优化。长期来看,这种扩展性可以用于在Spark中添加对其他语言的支持。

.NET for Apache Spark符合.NET Standard 2.0标准,可以在Linux、MacOS和Windows上使用。

官网地址:https://dotnet.microsoft.com/apps/data/spark

快速开始.NET for Apache Spark

在本节中,我们将展示如何在Windows上使用.NET Core运行.NET for Apache SPark应用程序。

在开始使用.NET for Apache Spark之前,确实需要安装一些东西,如:.NET Core 2.1 SDK | Visual Studio 2019 | Java 1.8 | Apache Spark 2.4.x。具体步骤可以参考这些步骤开始.net for Apache SPark。

一旦安装完毕,您就可以用三个简单的步骤开始在.NET中编写Spark应用程序。

在我们的第一个.NET Spark应用程序中,我们将编写一个基本的Spark pipeline,它将统计文本段中每个单词的出现次数。

// 1. Create a Spark sessionvar spark = SparkSession    .Builder()    .AppName("word_count_sample")    .GetOrCreate();

// 2. Create a DataFrameDataFrame dataFrame = spark.Read().Text("input.txt");

// 3. Manipulate and view datavar words = dataFrame.Select(Split(dataFrame["value"], " ").Alias("words"));

words.Select(Explode(words["words"])    .Alias("word"))    .GroupBy("word")    .Count()    .Show();

.NET For Apache Spark的特点

可以用C#或者F# 进行Apache Spark开发

.NET for Apache Spark 为您提供了使用 C# 和F# 来操作Apache Spark的APIs。使用这些.NET API,您可以访问Apache Spark的所有功能,包括Spark SQL,用于处理结构化数据和Spark流。

高性能

第一版的.NET for Apache Spark在流行的TPC-H基准性能测试中的表现就很优异。TPC-H基准性能测试由一组面向业务的查询组成。下图展示了.NET Core与Python和Scala在TPC-H查询集上的性能比较。

上面的图表显示了相对于Python和Scala,.NET对于Apache Spark的每个查询性能对比。NET for Apache Spark在Python和Scala上表现良好。此外,在UDF性能至关重要的情况下,比如查询1,JVM和CLR.NET之间传递3B行非字符串数据的速度比Python快2倍。

同样重要的是,这是.NET for Apache Spark的第一个预览版,我们的目标是进一步投资于改进和基准测试性能(例如,Arrow优化)。您可以按照我们的指示在我们的GitHub仓储上对此进行基准测试。

利用.NET生态系统

.NET For Apache Spark允许您重用作为.NET开发人员已经拥有的所有知识、技能、代码和库。

您的数据处理代码还可以利用.NET开发人员可以使用的大型库生态系统,如Newtonsoft.Json,ML.NET、MathNet.NDigics、NodaTime等。

跨平台

.NET for Apache Spark可以在Linux、MacOS和Windows上使用,就像.NET的其他部分一样。

.NET for Apache Spark在Azure HDInsight中默认可用,可以安装在Azure Databricks、Azure Kubernetes服务、AWS数据库、AWS EMR等中。

开源免费

.NET for Apache Spark是一个拥有来自3,700多家企业的60,000多名代码贡献者的强大开源社区的一部分。

.NET是免费的,其中包括用于 .NET for Apache Spark。没有任何费用或许可证费用,包括用于商业用途的费用。

.NET For Apache Spark的下一步计划

今天是我们旅程的第一步。以下是我们近期路线图的一些特点。

  • 简化入门经验、文档和示例

  • 原生集成到开发人员工具中,如VisualStudio、VisualStudio Code、木星笔记本

  • .net对用户定义的聚合函数的支持

  • NET的C#和F#的惯用API(例如,使用LINQ编写查询)

  • 用Azure数据库、Kubernetes等提供的开箱即用的支持。

  • 使.NET for Apache Spark成为Spark Core的一部分。

总结

.NET for Apache Spark是微软使.NET成为构建大数据应用程序的伟大技术栈的第一步。
想了解更多信息的可以访问.NET for Apache Spark的github仓储:https://github.com/dotnet/spark 。
最后,感谢您的阅读。
本文内容,部分参考自:https://devblogs.microsoft.com/dotnet/introducing-net-for-apache-spark/

分享一个.NET平台开源免费跨平台的大数据分析框架.NET for Apache Spark相关推荐

  1. 主题:分享一个靠谱的免费论文查重网站

    正文:给大家分享一个靠谱的免费论文查重网站PaperPP:http://www.paperpp.com,可以一站解决"论文查重.改重.降重"等问题

  2. 分享一个靠谱的免费论文查重网站

    给大家分享一个靠谱的免费论文查重网站PaperPP:http://www.paperpp.com,可以一站解决"论文查重.改重.降重"等问题@TOC 欢迎使用Markdown编辑器 ...

  3. 开源/免费数学书大合集:微积分、线代、数分、抽代…数学教授分类整理,精心推荐...

    点击我爱计算机视觉标星,更快获取CVML新技术 栗子 发自 凹非寺 量子位 报道 | 公众号 QbitAI 同学,请来领取一份开源/免费数学书大列表. 这是北亚利桑那大学的数学系副教授Dana C. ...

  4. 推荐一个多功能且实用的shopee大数据分析系统―—知虾数据

    推荐一个多功能且实用的shopee大数据分析系统―-知虾数据 知虾数据能帮助卖家轻松地掌握各大站点的数据,从而提高选品的准确度,有效引流,最终打造超卖爆单店铺,助力Shopee卖家实现跨境电商的追光之 ...

  5. darknet框架 VS2017 平台工具集141_GIMP 图像编辑处理工具 - 多平台开源免费的PS替代品...

    GIMP 是一个跨平台的办公图像编辑器,可用于 GNU/Linux,OS X,Windows 等操作系统. GIMP 是开源软件 关于 GIMP GIMP 的全称是 "The GNU Ima ...

  6. 分享一个现代的,免费的,简单而有效的编辑器Vis

    Vis是一个免费的开源,类似Vi的代码编辑器,它扩展了vi的模态编辑,内置支持使用相同编辑器的基于结构正则表达式的命令语言实现的多个游标/选择.并将其与基于sam结构正则表达式的命令语言相结合. Vi ...

  7. 分享几个开源免费的中后台前端框架

    1.amis 由百度团队出品,属于低代码前端框架,它使用 JSON 配置来生成页面,可以节省页面开发工作量,极大提升开发前端页面的效率. 代码库:https://gitee.com/baidu/ami ...

  8. 分享一个自己的开源项目ShapeView

    在家办公都快1个月了,人都要疯了.希望疫情早点过去,加油武汉,加油中国!!! 今天给大家分享一个我自己封装的小项目,我们公司的产品也在使用,就是使用自定义属性替代项目中的shape文件,首先看效果图: ...

  9. 纯干货!埃森哲的大数据分析框架分享-part 1

    " 最近一份据说是埃森哲的大数据分析PPT莫名被朋友分享,真实与否暂不考究,但是就PPT内容来说,对于数据分析还是很翔实的,有很多实用的大数据分析方法" 0.简述 PPT的内容非常 ...

最新文章

  1. [转]使用批处理设置、启动和停止服务
  2. 使用typedef声明新类型及函数指针
  3. 给vmstat加上时间戳
  4. 博客目录(随时删除)
  5. [原创]公布读取瑞星注册码的小程序源代码
  6. 可是笑声太响了的64391111
  7. 印章识别软件_一种印章识别方法及系统技术方案
  8. c#中excel文件怎么转换为dbf文件
  9. linux 类似迅雷下载软件,推荐几个可以替代迅雷的下载软件
  10. 机器学习(3)--LR算法
  11. linux逻辑卷管理器下载,LVM逻辑卷管理器(Logical Volume Manager)
  12. 机器学习——随机森林算法及原理
  13. python多行注释出错_python 有多行注释运行报错
  14. Python淘宝商品比价定向爬虫
  15. 已删除的好友微信号怎么找回来
  16. ubuntu测试键盘工具_Lubuntu安装屏幕键盘onboard,使触摸屏可以登录和输入
  17. 快消巨头与“饿了么”的数字革命
  18. 关于写作,村上春树提供的几个方法
  19. 如何解决vmware虚拟机下ubuntu无法连接WiFi问题
  20. SpringCloud Alibaba 从入门到精通(精选)

热门文章

  1. 还原出厂设置 擦除frp_如何备份,擦除和还原Apple Watch
  2. matlab练习程序(二值图像连通区域标记法,一步法)
  3. box-shadow阴影合集
  4. 微软正式发布Azure Functions 2.0
  5. @Springboot搭建项目controller层接收json格式的对象失败
  6. 多云战略:企业如何精益求精?
  7. JAVA学习笔记--初识容器类库
  8. PHP提取字符串中的数字
  9. Android延时执行调用的几种方法
  10. java 多线程原理(一)