当前位置: 移动技术网 > IT编程>开发语言>.net > 分享一个.NET平台开源免费跨平台的大数据分析框架.NET for Apache Spark

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

2019年04月26日  | 移动技术网IT编程  | 我要评论

wwe2014年6月24日,计重收费,妻子的鬼魂

.net for apache spark

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

作者:依乐祝
原文链接:

什么是.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上使用。

官网地址:

快速开始.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 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的特点

可以用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仓储: 。
最后,感谢您的阅读。
本文内容,部分参考自:

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网