9个最佳的大数据处理编程语言 -凯发k8国际

0顶
0踩

9个最佳的大数据处理编程语言

2017-07-25 15:03 by 副主编 jihong10102006 评论(0) 有10143人浏览
引用
文章来自:

大数据的浪潮仍在继续。它渗透到了几乎所有的行业,信息像洪水一样地席卷企业,使得软件越发庞然大物,比如excel看上去就变得越来越笨拙。数据处理不再无足轻重,并且对精密分析和强大又实时处理的需要变得前所未有的巨大。

那么,在巨大的数据集中进行筛选的最好工具是什么?通过和数据骇客的交流,我们知道了他们用于硬核数据分析最喜欢的语言和工具包。

r语言

在这些语言名单中,如果r语言排第二,那就没其他能排第一。自1997年以来,作为昂贵的统计软件,如matlab和sas的免费替代品,它渐渐风靡全球。

在过去的几年时间中,r语言已经成为了数据科学的宠儿——数据科学现在不仅仅在书呆子一样的统计学家中人尽皆知,而且也为华尔街交易员,生物学家,和硅谷开发者所家喻户晓。各种行业的公司,例如google,facebook,美国银行,以及纽约时报都使用r语言,r语言正在商业用途上持续蔓延和扩散。

r语言有着简单而明显的吸引力。使用r语言,只需要短短的几行代码,你就可以在复杂的数据集中筛选,通过先进的建模函数处理数据,以及创建平整的图形来代表数字。它被比喻为是excel的一个极度活跃版本。

r语言最伟大的资本是已围绕它开发的充满活力的生态系统:r语言社区总是在不断地添加新的软件包和功能到它已经相当丰富的功能集中。据估计,超过200万的人使用r语言,并且最近的一次投票表明,r语言是迄今为止在科学数据中最流行的语言,被61%的受访者使用(其次是python,39%)。

此外,它的身影也渐渐出现在了华尔街。以前,银行分析师会全神贯注于excel文件直到深夜,但现在r语言被越来越多地用于金融建模r,特别是作为一种可视化工具,niall o’connor,美国银行的副总裁如是说。 “r语言使我们平凡的表格与众不同,”他说。

r语言的日渐成熟,使得它成为了数据建模的首选语言,虽然当企业需要生产大型产品时它的能力会变得有限,也有的人说这是因为它的地位正在被其他语言篡夺。

“r更适合于做一个草图和大概,而不是详细的构建,”michael driscoll,metamarkets的首席执行官说。 “你不会在谷歌的网页排名以及facebook的朋友推荐算法的核心找到r语言。工程师会用r语言做原型,然后移交给用java或python写的模型。”

话说回来,早在2010年,paul butler就以r语言打造了全球的facebook地图而著名,这证明了该语言丰富的可视化功能。尽管他现在已经不像以前那样频繁地使用r语言了。

“r正在一点点地过时,因为它的缓慢和处理大型数据集的笨重,”butler说。

那么,他使用什么代替呢?请继续阅往下看。

python

如果说r语言是一个神经质又可爱的高手,那么python是它随和又灵活的表兄弟。作为一种结合了r语言快速对复杂数据进行挖掘的能力并构建产品的更实用语言,python迅速得到了主流的吸引力。python是直观的,并且比r语言更易于学习,以及它的生态系统近年来急剧增长,使得它更能够用于先前为r语言保留的统计分析。

“这是这个行业的进步。在过去的两年时间中,从r语言到python已经发生了非常明显的转变,”butler说。

在数据处理中,在规模和复杂性之间往往会有一个权衡,于是python成为了一种折中方案。ipython notebook和numpy可以用作轻便工作的一种暂存器,而python可以作为中等规模数据处理的强大工具。丰富的数据社区,也是python的优势,因为可以提供了大量的工具包和功能。

美国银行使用python在银行的基础架构中构建新的产品和接口,同时也用python处理财务数据。“python广泛而灵活,因此人们趋之若鹜,”o’donnell说。

不过,它并非最高性能的语言,只能偶尔用于大规模的核心基础设施,driscoll这样说道。

julia

虽然当前的数据科学绝大多数是通过r语言,python,java,matlab和sas执行的。但依然有其他的语言存活于夹缝中,julia就是值得一看的后起之秀。

业界普遍认为julia过于晦涩难懂。但数据骇客在谈到它取代r和python的潜力时会不由得眉飞色舞。julia是一种高层次的,极度快速的表达性语言。它比r语言快,比python更可扩展,且相当简单易学。

“它正在一步步成长。最终,使用julia,你就能够办到任何用r和python可以做到的事情,”butler说。

但是至今为止,年轻人对julia依然犹豫不前。julia数据社区还处于早期阶段,要能够和r语言和python竞争,它还需要添加更多的软件包和工具。

“它还很年轻,但它正在掀起浪潮并且非常有前途,”driscoll说。

java

java,以及基于java的框架,被发现俨然成为了硅谷最大的那些高科技公司的骨骼支架。 “如果你去看twitter,linkedin和facebook,那么你会发现,java是它们所有数据工程基础设施的基础语言,”driscoll说。

java不能提供r和python同样质量的可视化,并且它并非统计建模的最佳选择。但是,如果你移动到过去的原型制作并需要建立大型系统,那么java往往是你的最佳选择。

hadoop和hive

一群基于java的工具被开发出来以满足数据处理的巨大需求。hadoop作为首选的基于java的框架用于批处理数据已经点燃了大家的热情。hadoop比其他一些处理工具慢,但它出奇的准确,因此被广泛用于后端分析。它和hive——一个基于查询并且运行在顶部的框架可以很好地结对工作。

scala

scala是另一种基于java的语言,并且和java相同的是,它正日益成为大规模机器学习,或构建高层次算法的工具。它富有表现力,并且还能够构建健壮的系统。

“java就像是建造时的钢铁,而scala则像黏土,因为你之后可以将之放入窑内转变成钢铁,”driscoll说。

kafka和storm

那么,当你需要快速实时的分析时又该怎么办呢?kafka会成为你的好朋友。它大概5年前就已经出现了,但是直到最近才成为流处理的流行框架。

kafka,诞生于linkedin内部,是一个超快速的查询消息系统。kafka的缺点?好吧,它太快了。在实时操作时会导致自身出错,并且偶尔地会遗漏东西。

“有精度和速度之间有一个权衡,”driscoll说, “因此,硅谷所有的大型高科技公司都会使用两条管道:kafka或storm用于实时处理,然后hadoop用于批处理系统,此时虽然是缓慢的但超级准确。”

storm是用scala编写的另一个框架,它在硅谷中因为流处理而受到了大量的青睐。它被twitter纳入其中,勿庸置疑的,这样一来,twitter就能在快速事件处理中得到巨大的裨益。

鼓励奖:

➤matlab

matlab一直以来长盛不衰,尽管它要价不菲,但它仍然被广泛使用在一些非常特殊的领域:研究密集型机器学习,信号处理,图像识别,仅举几例。

➤octave

octave和matlab非常相似,但它是免费的。不过,它在学术性信号处理圈子之外很少见到。

➤go

go是另一个正在掀起浪潮的后起之秀。它由google开发,从c语言松散地派生,并在构建健壮基础设施上,正在赢得竞争对手,例如java和python的份额。
来自: d1net
0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 1.首先设置后台user数据  分别设置有id和name和地址 再用有参和无参将之初始化: ...package ognl; public class user {    private int id;    private string name;    private adress adre

  • ognl 中有生成 list 和 map 的表达式,分别是:{e1,e2,e3,…} 和 #{key1:val1,key2:val2,…}。对集合 ognl 提供了两个操作符 in 和 not in,如: —- not in 的用法当然是一样的了。 之外,ognl 还允许通过某个...

  • ognl是一种表达式语言技术,封装在ognl.jar开发包中. 可以很方便的对对象的属性进行获取和设置. 1)什么是el,有什么用 属于表达式语言,可以访pagecontext,request,session,application存储范围的数据.可以简化...

  • 比较困惑在使用ognl表达式的取值时,不知道在什么情况下要加 # 可以使用<s:debug></s:debug>标签可以进行调试简单说 如果要访问对象栈中的值,直接访问属性即可。 如果要访问map栈中的值,需要加#。自己理解为 ...

  • 1.取值: @test public void func2() throws ognlexception{ user tom = new user("tom",12); map,user> hashmap = new hashmap(); hashmap.put("user1", new user("jack",20)); hashmap.put(...

  • 需要特别强调进行区分的,是在针对不同内容进行取值或者设值时,ognl表达式的不同。struts2 reference 写道:  the framework uses a standard naming context to evaluate ognl expressions. the top level ...

  • 值栈 可以从值栈中获取栈对象 ...值栈分为两部分map栈:实际上是ognlcontext类型,是个map,也是对actioncontext的一个引用。里面保存着各种map:requestmap,sessionmap,applicationmap,paramtersmap,attr;paramete

  • 普通取值 取第一列的值 list&amp;amp;lt;object[]&amp;amp;gt; &amp;amp;lt;s:property value=&amp;quot;#request.list[0]&amp;quot; &amp;amp;gt;&amp;amp;lt;/s:property&amp;...

  • 可以在java里像javascript一样快速取json值 通过注解快速从json取值

  • 在实际开发过程中,ognl 表达式要结合 struts2 的标签使用,主要就是%、#和$三个符号的使用。 # 符号 在 struts2 框架中,#符号有三种用途,分别如下: 1.访问非跟对象的属性 如访问 ognl 上下文和 action 上...

  • ognl是object-graph navigation language的缩写,它是一种功能强大的表达式语言,通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。...

  • ognl表达式详细总结,价值千金

  • 在ognl中有一个类型是map的context(称为上下文),在这个上下文中有一个跟元素(root),对跟元素的属性的访问可以直接使用属性名字,但是对于其他非跟元素的访问必须加上特殊符号#。 在struts2中 上下文为...

  • ognl 是 object-graph navigation language 的缩写, 从语言角度来说:它是一个功能强大的表达式语言,用来获取和设置 java™对象的属性。 ognl 在许多的地方都有应用。本文将对 ognl 进行介绍以及如何使用 ognl 。...

  • 2,ognl相当于一个上下文(ognlcontext)概念,就是一个map结构(教室 老师 学生) 它实现了java.utils.map 的接口。struts框架默认就支持ognl表达式语言。(从struts项目必须引入ognl.jar包可以看出) 比如:map ...

  • 什么是ognl?全称叫objectgraphic navigation language(对象图导航语言),它是struts2框架里面的第三方语言(即可以再别的地方用,struts2只是拿过来了而已),它可以调用对象中的方法,获取struts2里值栈的数据,具体...

  • 1.ognl 1.1.ognl的全称是object graph navigation language(对象图导航语言) 1.2.ognlcontext(ongl上下文)其实就是map(教室,老师,学生) map 教室 ognlcontext=根对象(1) 非根对象(n) 老师:跟对象 ...

  • 管理系统是一种通过计算机技术实现的用于组织、监控和控制各种活动的软件系统。这些系统通常被设计用来提高效率、减少错误、加强安全性,同时提供数据和信息支持。以下是一些常见类型的管理系统: 学校管理系统: 用于学校或教育机构的学生信息、教职员工信息、课程管理、成绩记录、考勤管理等。学校管理系统帮助提高学校的组织效率和信息管理水平。 人力资源管理系统(hrm): 用于处理组织内的人事信息,包括员工招聘、培训记录、薪资管理、绩效评估等。hrm系统有助于企业更有效地管理人力资源,提高员工的工作效率和满意度。 库存管理系统: 用于追踪和管理商品或原材料的库存。这种系统可以帮助企业避免库存过剩或不足的问题,提高供应链的效率。 客户关系管理系统(crm): 用于管理与客户之间的关系,包括客户信息、沟通记录、销售机会跟踪等。crm系统有助于企业更好地理解客户需求,提高客户满意度和保留率。 医院管理系统: 用于管理医院或医疗机构的患者信息、医生排班、药品库存等。这种系统可以提高医疗服务的质量和效率。 财务管理系统: 用于记录和管理组织的财务信息,包括会计凭证、财务报表、预算管理等。财务管理系统

  • gb2312字符集 作用:国家简体中文字符集,兼容ascii。 位数:使用2个字节表示,能表示7445个符号,包括6763个汉字,几乎覆盖所有高频率汉字。 范围:高字节从a1到f7, 低字节从a1到fe。将高字节和低字节分别加上0xa0即可得到编码。 gbk字符集 作用:它是gb2312的扩展,加入对繁体字的支持,兼容gb2312。 位数:使用2个字节表示,可表示21886个字符。 范围:高字节从81到fe,低字节从40到fe。 gb18030字符集 作用:它解决了中文、日文、朝鲜语等的编码,兼容gbk。 位数:它采用变字节表示(1 ascii,2,4字节)。可表示27484个文字。 范围:1字节从00到7f; 2字节高字节从81到fe,低字节从40到7e和80到fe;4字节第一三字节从81到fe,第二四字节从30到39。

  • 毕业设计,安卓app,基于java开发的学生成绩课件管理系统app,包括pc端和安卓anroid手机app,内含java完整源码 安卓andriod学生成绩课件管理系统 系统开发环境: windows myclipse(服务器端) eclipse(手机客户端) mysql数据库 服务器也可以用eclipse或者idea等工具,客户端也可以采用android studio工具! 系统客户端和服务器端架构技术: 界面层,业务逻辑层,数据层3层分离技术,mvc设计思想! 服务器和客户端数据通信格式:json格式,采用servlet方式 【服务器端采用ssh框架,请自己启动tomcat服务器,hibernate会自动生成数据库表的哈!】 hibernate生成数据库表后,只需要在admin管理员表中加个测试账号密码就可以登录后台了哈! 下面是数据库的字段说明: 班级: 班级编号,班级名称,开办日期,班主任 学生: 学号,登录密码,所在班级,姓名,性别,出生日期,学生照片,联系电话,家庭地址 老师: 教师编号,登录密码,姓名,性别,出生日期,联系电话,邮件,地址,

global site tag (gtag.js) - google analytics
网站地图