Spark安装搭建与使用

Spark安装搭建与使用

Spark简介

Apache Spark是一个开源分布式的数据处理平台,支持集群进行数据处理。类似于hadoop,却又能提供灵活的编程接口(而不是map和reduce过程)。目前Spark的API支持Java, Python, Scala和R语言。

Spark框架

Spark框架

  • Spark Core : 框架核心组件,提供内存管理、任务调度等功能,并对第三方存储系统(例如HDFS,S3等)提供接口支持。同样也提供RDD (弹性分布式数据集,Spark特有的存储单元)API。

  • Spark SQL : 提供结构化或半结构化的数据处理。支持用户在Spark内使用SQL进行数据访问,包括Hive datasets, JSON,JDBC等。

  • Spark Streaming : 提供流式处理

  • MLib : 提供机器学习算法库

  • GraphX: 提供图计算。(PageRank等算法)

Spark常见API功能

两种操作类型:Transformation 和Action
Transformation是一种操作RDD数据集的指令,会创建新的RDD进行数据存储,但不会反馈结果给主程序。可以理解为数据的操作。常见的Transformation接口有:
Trans
Action是会产生返回结果给主程序的。常见的Action指令有:
Action

  • map函数功能
# map
# sc = spark context, parallelize creates an RDD from the passed object
x = sc.parallelize([1,2,3])
y = x.map(lambda x: (x,x**2))

# collect copies RDD elements to a list on the driver
print(x.collect()) 
print(y.collect())

[1, 2, 3]
[(1, 1), (2, 4), (3, 9)]
  • flatMap功能
# flatMap
x = sc.parallelize([1,2,3])
y = x.flatMap(lambda x: (x, 100*x, x**2))
print(x.collect())
print(y.collect())

[1, 2, 3]
[1, 100, 1, 2, 200, 4, 3, 300, 9]

详情可以参见:https://www.iteblog.com/archives/1395.html

Spark RDD

RDD: Resilient Distributed Datasets
Spark在集群上的数据集。支持数据在不同机器上分片存储。具体如下所示:
RDD
提供多种接口,支持聪其它数据源获取数据,转换为RDD
hadoopFile() : 从Hadoop文件转换为RDD
objectFile() :序列化数据
textFile() : HDFS 或本地文件

Spark下载与安装

下载地址: http://spark.apache.org/downloads.html
Spark有多种运行方式。此处强调本地模式(Standalone),可以使用Hadoop本地模式,也可以不使用Hadoop。即Spark的运行可以独立Hadoop进行。
支持的语言版本:
(1)Java 7+
(2)Python 2.6+
(3)R 3.1+
(4) Scala 2.10+
下载后解压文件,cmd下进入解压文件目录,即可运行(要求安装了Python):
Spark
说明:虽然不需要Hadoop,可以直接使用Spark,但是本地还需要配置HADOOP_HOME,添加winutils.exe文件,具体文件下载可以自行搜索。

Spark windows集成开发环境搭建

选择使用Intellij IDEA集成开发环境,选用Scala语言进行搭建。
下载IDEA(社区免费版本)http://www.jetbrains.com/idea/download/
IDEA
IDEA工程里library添加Spark的Jar包即可

利用Spark调用Ansj进行中文分词

主要代码如下:

      val lines = sc.textFile(doc, 1).map { x =>
      val temp = ToAnalysis.parse(x).getTerms()
      val word = for(i<-Range(0,temp.size())) yield temp.get(i).getName()
      word
    }
      val pairs = lines.flatMap(words => words.map(word =>(word,1)))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值