360SDN.COM

Spark 1.4最大的看点:支持R语言(SparkR)

来源:  2017-07-27 16:03:44    评论:0点击:

R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个广泛应用于统计计算和统计制图的优 秀编程语言,但是其交互式使用通常局限于一台机器。为了能够使用R语言分析大规模分布式的数据,UC Berkeley给我们带来了SparkRSparkR就是用R语言编写Spark程序,它允许数据科学家分析大规模的数据集,并通过R shell交互式地在SparkR上运行作业。值得大家庆幸的是,2015年4月,SparkR已经合并到Apache Spark中,并且将在2015年的夏天随着Spark 1.4版本一起发布!

一年前由AMPLab开始这个项目,并由AMPLab自己孵化成自己的项目,这样可以确保SparkR能够容易地合并到Spark项目中,它不引入任何依赖。SparkR的最终目标将和PySpark一样,并且遵循PySpark一样的设计模式。

将SparkR合并到Spark项目中,可以使得R用户很轻易地使用Spark,这会帮助Spark项目获得更多地使用用户。除此之 外,SparkR还在进行很多特性的开发,比如使得R和ML管道交互(SPARK-6805),支持SparkR Streaming(SPARK-6803),使用DataFrame,使用RDD的相关API(SPARK-6836),支持对任何类型的数据进行排序 (SPARK-6814)以及支持acccumulators (SPARK-6815)。和Scala一样,SparkR也支持多种的集群管理模式,其中就包括了YARN(SPARK-6797),

SparkR遵循Apache 2.0 License,除了要求用户在他们机器上安装R和Java之外,不需要依赖任何外部的东西!SparkR的开发人员来自很多地组织,其中包括UC Berkeley, Alteryx, Intel。

在编译Spark的时候,如果需要使用到SparkR,可以在编译时候加上-PsparkRMaven配置属性。关于SparkR的编程指南文档还在编写中( SPARK-6806、SPARK-6824),下面使用R语言举个Word Count的例子:

01 /**
02  * User: 过往记忆
03  * Date: 15-04-14
04  * Time: 上午00:23
05  * bolg: http://www.iteblog.com
06  * 本文地址:http://www.iteblog.com/archives/1315
07  * 过往记忆博客,专注于hadoop、hive、spark、shark、flume的技术博客,大量的干货
08  * 过往记忆博客微信公共帐号:iteblog_hadoop
09  */
10  
11 library(SparkR)
12  
13 args <- commandArgs(trailing = TRUE)
14  
15 if (length(args) != 1) {
16   print("Usage: wordcount <file>")
17   q("no")
18 }
19  
20 # Initialize Spark context
21 sc <- sparkR.init(appName = "RwordCount")
22 lines <- textFile(sc, args[[1]])
23  
24 words <- flatMap(lines,
25                  function(line) {
26                    strsplit(line, " ")[[1]]
27                  })
28 wordCount <- lapply(words, function(word) { list(word, 1L) })
29  
30 counts <- reduceByKey(wordCount, "+", 2L)
31 output <- collect(counts)
32  
33 for (wordcount in output) {
34   cat(wordcount[[1]], ": ", wordcount[[2]], "\n")
35 }

程序运行流程框架如下:

为您推荐

友情链接 |九搜汽车网 |手机ok生活信息网|ok生活信息网|ok微生活
 Powered by www.360SDN.COM   京ICP备11022651号-4 © 2012-2016 版权