.NET for Apache Spark 预览版正式发布

过往记忆大数据 过往记忆大数据
本文原文(点击下面阅读原文即可进入) https://www.iteblog.com/archives/2544.html

2019年4月25日,微软的 Rahul Potharaju、Terry Kim 以及 Tyson Condie 在 Spark + AI Summit 2019 会议上为我们带来主题为 《Introducing .NET Bindings for Apache Spark 》的分享,并宣布 .NET for Apache Spark 预览版正式发布。

.NET 框架是由微软开发,一个致力于敏捷软件开发、快速应用开发、平台无关性和网络透明化的免费软件框架,用于构建许多不同类型的应用程序。就当前的编程语言排名可以看出,.NET 也是世界上使用人数最多的编程语言之一。其旗舰编程语言 C# 在各种文章和统计数据中被列为最受欢迎的编程语言之一:


如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公众号:iteblog_hadoop
从上图可以看出,C# 在 stackoverflow 调查的最流行编程语言中排名第八位,具体可以参见 这里。同时,C# 在 2018年 GitHub 最流行的编程语言中排名第六位,参见 这里。虽然有这么多的开发者使用 C#,但是目前没有很好的大数据解决方案,基于这些问题,微软为我们带来了 .NET for Apache Spark。
很明显,.NET for Apache Spark 的目标就是使得 .NET 的开发者们能够使用到 Apache Spark 的所有 API,因为目前 Apache Spark 仅仅支持 Scala, Java, Python 以及 R 编程语言。微软最近几年在开源项目上做了很多贡献,所以 .NET for Apache Spark 当然也是开源的项目(项目地址:https://github.com/dotnet/spark),不过是基于 MIT 许可证发行。


如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公众号:iteblog_hadoop

.NET for Apache Spark 是什么

.NET for Apache Spark 为 C# 或 F# 的开发者提供了高性能的 API 来访问 Apache Spark。 使用此 .NET API,用户可以访问 Apache Spark 的所有组件,包括 Spark SQL,DataFrames,Streaming,MLLib 等。并且这个项目允许 .NET 开发者重用已有的所有知识,技能,代码和库。
让 Spark 支持 C#/F# 是基于一个新的 Spark 互操作层(interop layer),这个层提供了更容易的扩展性。从长远来看,这种可扩展性可用于在 Spark 中添加对其他语言的支持。具体可以参见 SPARK-26257。.NET for Apache Spark 的具体框架如下:


如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公众号:iteblog_hadoop
.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 的使用之前需要安装一些软件,具体参见 这里。这样我们就可以使用 C# 或 F# 来编写 Spark 应用程序了,下面是分别使用 C# 和 F# 编写的 WordCount 程序:
C# 版本的 WordCount

F# 版本的 WordCount

可以看出,这个和 Spark 原生的 API 还是很类似的。

.NET for Apache Spark 性能如何

经过微软官方的测试,.NET for Apache Spark 的第一个预览版本在流行的 TPC-H 基准测试中表现良好。TPC-H 基准包含一套面向业务的查询。 下图说明了在 TPC-H 查询集上 .NET Core 与 Python 和 Scala 的性能对比。

如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公众号:iteblog_hadoop
上图显示了 .NET for Apache Spark 与 Python 和 Scala 的每个查询性能对比。.NET for Apache Spark 相比较于 Python 和 Scala 运行良好。 此外,在 UDF 性能至关重要的情况下,例如查询1,其中在 JVM 和 CLR 之间传递30亿行非字符串数据,.NET for Apache Spark 比 Python 快2倍。

©著作权归作者所有:来自51CTO博客作者mob604756f47778的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Koalas: 让 pandas 开发者轻松过渡到 Apache Spark
  2. 谷歌技术面试终极通关指南
  3. 5年内最大手笔!谷歌豪掷26亿美元收购数据分析公司Looker
  4. 对话式交互崛起,从百度度秘看对话式AI的技术实践
  5. zabbix 邮件报警
  6. 如何基于Apache Pulsar和Spark进行批流一体的弹性数据处理?
  7. AI首次全面超越数据库专家!腾讯、华科推出基于深度DL的云数据库自
  8. 用孪生网络、对比损失和三重损失进行人脸识别的单样本学习
  9. 当Adobe在使用过程中出现“非正版提示”时的解决方法

随机推荐

  1. [新技术]新技术
  2. Android硬件加速相关知识点总结
  3. [代码分享] 乐淘Android客户端源码
  4. Android异步任务机制之AsycTask
  5. Android 一些网址记录
  6. 通过浏览器调用Android或iOS应用
  7. Android显示圆角图片,可指定图片某几个角
  8. Android UI学习 - Tab的学习和使用
  9. iPhone相较Android机型所存在的四大硬伤
  10. android编译步骤