10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

微软发布 .Net for Apache Spark :用什么语言开发大数据都可以

  • 2019-04-29
  • 本文字数:2100 字

    阅读完需:约 7 分钟

微软发布 .Net for Apache Spark :用什么语言开发大数据都可以

导读: Apache Spark 是当今最流行的开源大数据处理框架。Spark 用于进行分布式、大规模的数据处理,提供了更高级的编程接口、更高的性能。除此之外,Spark 不仅能进行常规的批处理计算,还提供了流式计算支持。而 .NET 是由 Microsoft 开发的一种致力于敏捷开发、快速应用开发、平台无关性和网络透明化的开发平台。长久以来,.NET 开发人员无法用他们已有的知识来使用 Apache Spark,但这样尴尬的局面就要终结了。Microsoft 4 月 29 日发布了 .NET for Apache Spark 预览版。从此以后,无论你用什么语言,都可以进行数据分析了!



4 月 24 日,在 Spark+AI 峰会 上,我们很高兴地宣布推出 .NET for Apache Spark。Spark 是一种流行的开源分布式处理引擎,用于分析大型数据集。Spark 可用于处理批量数据、实时流、机器学习和即席查询(ad-hoc query)。


.NET for Apache Spark 旨在使 .NET 开发人员可以跨所有 Spark API 来访问 Apache® Spark™。到目前为止,Spark 已经可以通过 Scala、Java、Python 和 R 来访问,但尚不能通过 .NET 来访问。


我们计划在 open(作为 .NET Foundation 成员项目)中为 Apache Spark 开发 .NET,同时与 Spark 和 .NET 社区一起开发,以确保开发人员能够在这两方面都做得很好。


本文将阐述关于以下主题的更多细节:


什么是 .NET for Apache Spark?

.NET for Apache Spark 提供了高性能 API,用于使用 C# 和 F# 中的 Spark。通过这个 .NET API,开放人员可以访问 Apache Spark 的所有方面,包括 Spark SQL、DataFrame、Streaming、MLLib 等。.NET for Apache Spark 允许 .NET 开发人员重用已有的所有知识、技能、代码和库。


绑定到 Spark 的 C#/F# 语言将被编写到一个新的 Spark 互操作层上,该层提供了更容易的可扩展性。这一新的 Spark 互操作层的编写,考虑到了语言扩展的最佳实践,并针对互操作性和性能进行了优化。从长期来看,这种可扩展性可用于在 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. 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 性能

我们很高兴地宣布,.NET fro Apache Spark 的第一个预览版本在流行的 TPC-H 基准 测试中表现良好。TPC-H 基准由一组面向业务的查询组成。下图展示了 .NET Core 与 Python、Scale 在 TPC-H 查询集上的性能对比。



上图显示了 .NET for Apache Spark 与 Python 和 Scala 的每个查询性能对比。.NET for Apache Spark 对阵 Python 和 Scale 时表现出色。此外,在 UDF 性能至关重要的情况下,例如查询 1,其中在用于 Apache Spark 的 JVM 和 CLR 之间传递 3B 行的非字符串数据,就其传递速度而言,.NET 要比 Python 快上 2 倍。


同样重要的是,这是我们为 Apache Spark 开发的第一个 .NET 预览版,我们的目标是进一步致力于改进和基准测试性能(如 Arrow 优化)。你可以按照我们的说明在 Github repo 上对其进行基准测试。

.NET For Apache Spark 的下一步

今天 .NET for Apache Spark 的发布,是我们征途的第一步。以下是我们近期路线图的一些功能,请关注我们的 GitHub repo完整路线图


  • 简化入门体验、文档与示例。

  • 与 Visual Studio、Visual Studio Code、Jupyter notebooks 等开发工具进行原生整合。

  • .NET 支持用户定义的聚合函数。

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

  • 对 Azure Databricks、Kubernetes 等开箱即用的支持。

  • 将 .NET for Apache Spark 作为 Spark Core 的部分。你可以访问此 网址 跟踪进程。

结语

.NET for Apach Spark 是我们将 .NET 打造成构建大数据应用程序的重要技术堆栈的第一步。


我们需要你的帮助来为 .NET for Apache Spark 塑造未来。我们期待你使用 .NET for Apache Spark 进行构建。你可以通过我们的 GitHub repo,向我们伸出援助之手。


https://github.com/dotnet/spark




原文链接:


https://devblogs.microsoft.com/dotnet/introducing-net-for-apache-spark/


2019-04-29 15:586741
用户头像

发布了 376 篇内容, 共 204.3 次阅读, 收获喜欢 949 次。

关注

评论 1 条评论

发布
用户头像
Make Microsoft Great Again !
2019-04-30 09:41
回复
没有更多了
发现更多内容

Web前端入门:JavaScript cookie 有大小限制吗?溢出会怎样?

不在线第一只蜗牛

JavaScript 前端 Web

YashanDB SQLCODE函数

YashanDB

数据库

奥特斯2025/26财年第一季度呈现增长趋势

财见

中烟创新参编的《数据企业评估规范》标准正式发布

中烟创新

赛博威正式加入广东省网商协会,共促大湾区网商产业数智化高质量发展

赛博威科技

数字化 生态合作 赛博威 网商协会

社区新贡献:X2SeaTunnel 助你无缝迁移到 SeaTunnel!

白鲸开源

开源 数据同步 Apache SeaTunnel 数据迁移工具 X2SeaTunnel

中烟创新参编的《软件和信息技术服务行业企业环境社会治理信息披露指南》标准正式发布

中烟创新

语音客服公司驯鹿 AI 获数千万 A+轮融资;扎克伯格:眼镜将成为用户与 AI 交互的主要方式丨日报

声网

YashanDB SQLERRM函数

YashanDB

数据库

YashanDB STDDEV函数

YashanDB

数据库

新手教程:用外部 PostgreSQL 和 Zookeeper 启动 Dolphinscheduler

白鲸开源

数据库 postgresql zookeeper 开源 Apache DolphinScheduler

线上问题定位神器:Arthas

量贩潮汐·WholesaleTide

Python

精彩回顾 | 破解跨地域运维难题!Bonree ONE 多地多中心版公有云首发实录

博睿数据

一图读懂网易灵动“灵掘”与“机械智心”

网易伏羲

智慧矿山 网易灵动 无人挖掘机 无人装载机 装载机器人

ManageEngine卓豪如何助你轻松应对GMP/FDA审计?

ServiceDesk_Plus

ManageEngine卓豪

YashanDB SQRT函数

YashanDB

数据库

每日经济新闻专访:押注具身智能模型、不做硬件做“大脑”,网易能否啃下比智驾更复杂的“硬骨头”?

网易伏羲

智慧矿山 网易灵动 工程机械智能化 挖掘机器人 装载机器人

活动邀请 | 阿里云AI原生应用开发实战营—Serverless AI 专场(北京站)开启报名!

阿里巴巴云原生

阿里云 Serverless AI 云原生

AI Gateway 分析:OpenRouter vs Higress

阿里巴巴云原生

阿里云 云原生 Higress

凯睿德制造收购Convanit,推进智能制造中的AI图像分析

财见

e签宝CEO金宏洲受邀出席WAIC世界人工智能大会

科技汇

守护金融核心业务 | 博睿数据《金融业务全景与全链路智能可观测体系建设白皮书》发布!

博睿数据

用文心快码Zulu打造太阳系3D模拟器:从需求到落地的全流程实践

Comate编码助手

3D AI辅助编程 AI 编程 文心快码 文心快码Zulu

在多机运维过程中,最容易踩的几个坑

是但求其发

nginx 容器 运维工具 Linux 运维 #程序员

从崩溃到稳定:前端开发者必学的 Node.js 守护进程实战指南

量贩潮汐·WholesaleTide

node.js

Alexa实时对话翻译技术解析

qife122

语音识别 对话式AI

Vidar Stealer:隐藏在Steam游戏中的信息窃取恶意软件分析

qife122

恶意软件 威胁分析

数据治理之数据质量评估维度及方法

天翼云开发者社区

数据治理

海外舆情监测为何成为出海企业的必修课?

沃观Wovision

出海企业 海外舆情监控 沃观Wovision 舆情监测系统

Django模型关系:从一对多到多对多全解析

电子尖叫食人鱼

数据库 django

语言模型的后完成学习技术解析

qife122

语言模型 自我评估

微软发布 .Net for Apache Spark :用什么语言开发大数据都可以_大数据_Ankit Asthana_InfoQ精选文章