Spark 概念学习系列之Spark 多语言编程
不多说,直接上干货!
Spark 同时支持Scala、Python、Java 三种应用程序API编程接口和编程方式, 考虑到大数据处理的特性,一般会优先使用Scala进行编程,其次是Python,最后才是Java。 无论使用Scala、Python还是Java编程程序都需要遵循Spark 编程模型,考虑对Spark平台支持的有力程度来说,Spark 对Scala语言的支持是最好的,因为它有最丰富的和最易用的编程接口。
Spark 多语言编程的简介
Spark 目前支持Scala、Python、Java三种编程语言。
Scala 作为Spark的原生语言,代码优雅、简洁而且功能完善,很多开发者都比较认可,它是业界广泛使用的Spark程序开发语言。
Spark 也提供了Python的编程模型PySpark,使得Python可以作为Spark开发语言之一。 尽管现在PySpark还不能支持所有的Spark API,但是以后的支持度会越来越高。
Java 也可以作为Spark的开发语言之一,但是相对于前两者而已,逊色了很多。但是Java8却很好地适应了Spark的开发风格,大家有兴趣可以自行了解。
Spark 多语言编程的误解
spark对多语言的支持,并不是说spark可以操作各个语言写的程序。 而是各种语言可以使用spark提供的编程模型来开发spark程序,并连接 spark集群来运行开发好的app。
前面我已经些了使用Scala、Java语言开发Spark程序,接下来我重点给大家写此博文了解一下Python的编程模型。
Spark编程环境搭建(基于Intellij IDEA的Ultimate版本)(包含Java和Scala版的WordCount)(博主强烈推荐)
使用python来开发spark app
Spark 公开了Python的编程模型--PySpark,开发者可以通过PySpark很容易地开发Spark 应用程序。
但是Python API和Scala API并不完全相同:
1)Python是动态语言,RDD 可以持有不同类型的对象。
2)PySpark 目前并没有支持全部的API,但核心部分已经全部支持。
3)在PySpark里,RDD支持和Scala一样的方法,只不过这些方法是Python函数来实现的,返回的也是Python的集合类型;对于RDD方法中使用的短函数,则可以使用Python的Lambda语法实现。
不过,使用Python开发Spark应用程序也有很多优势,比如说不需要编译,使用方便,还可以与许多系统集成,特别是NoSQL大部分都提供了Python开发包。
接下来我带大家一起使用Python语言开发Spark App。
● IDE
这里选择pycharm
http://www.jetbrains.com/products.html#lang=python

● 安装python
● 创建python项目
● 引入依赖的模块
pyspark
py4j
Spark 概念学习系列之Spark 多语言编程的更多相关文章
- Spark 概念学习系列之Spark基本概念和模型(十八)
打好基础,别小瞧它! spark的运行模式多种多样,在单机上既可以本地模式运行,也可以伪分布模式运行.而当以分布式的方式在集群中运行时.底层的资源调度可以使用Mesos或者Yarn,也可使用spark ...
- Spark 概念学习系列之Spark存储管理机制
Spark存储管理机制 概要 01 存储管理概述 02 RDD持久化 03 Shuffle数据存储 04 广播变量与累加器 01 存储管理概述 思考: RDD,我们可以直接使用而无须关心它的实现细节, ...
- Spark 概念学习系列之Spark Core(十五)
不多说,直接上干货! 最关键的是转换算子Transformations和缓存算子Actions. 主要是对RDD进行操作. RDD Objects -> Scheduler(DAGSched ...
- Spark SQL概念学习系列之Spark SQL概述
很多人一个误区,Spark SQL重点不是在SQL啊,而是在结构化数据处理! Spark SQL结构化数据处理 概要: 01 Spark SQL概述 02 Spark SQL基本原理 03 Spark ...
- Spark RDD概念学习系列之Spark的算子的作用(十四)
Spark的算子的作用 首先,关于spark算子的分类,详细见 http://www.cnblogs.com/zlslch/p/5723857.html 1.Transformation 变换/转换算 ...
- Spark RDD概念学习系列之Spark Hash Shuffle内幕彻底解密(二十)
本博文的主要内容: 1.Hash Shuffle彻底解密 2.Shuffle Pluggable解密 3.Sorted Shuffle解密 4.Shuffle性能优化 一:到底什么是Shuffle? ...
- Spark Streaming概念学习系列之Spark Streaming容错
Spark Streaming容错 检查点机制-checkpoint 什么是检查点机制? Spark Streaming 周期性地把应用数据存储到诸如HDFS 或Amazon S3 这样的可靠存储系统 ...
- Spark SQL概念学习系列之Spark SQL 架构分析(四)
Spark SQL 与传统 DBMS 的查询优化器 + 执行器的架构较为类似,只不过其执行器是在分布式环境中实现,并采用的 Spark 作为执行引擎. Spark SQL 的查询优化是Catalyst ...
- Spark 概念学习系列之从物理执行的角度透视spark Job(十七)
本博文主要内容: 1.再次思考pipeline 2.窄依赖物理执行内幕 3.宽依赖物理执行内幕 4.Job提交流程 一:再次思考pipeline 即使采用pipeline的方式,函数f对依赖的RDD ...
随机推荐
- Visual studio 之常见编译错误(1):syntax error : missing ';' before identifier 'PVOID64'
来自博客:http://blog.csdn.net/chenyusiyuan/article/details/4643313的总结: 一般可通过调整 DirectShow/Include 在 Tool ...
- FreeBSD是UNIX系统的重要分支,其命令与Linux大部分通用,少部分是其特有。
FreeBSD是UNIX系统的重要分支,其命令与Linux大部分通用,少部分是其特有. 1: man 在线查询 man ls2: ls 查看目录与档案 ls -la3: ln 建立链接文件 ln -f ...
- java设计模式--事件监听器模式(观察者模式)
这两个模式实质上很简单,在实际项目中也是非常常用的.但却被有些人说的云里雾里,这里用白话解释一下. 本质上两者都是同一个模式.专业的说法是这样的(觉得绕口的请直接转到白话解释部分,再回头来看下面这几句 ...
- poi excel自己主动转换成javabean 支持引用类型属性二级转换
近期项目须要使用excel导入功能.导入学生的时候须要指定所在班级,使用excel一次性导入! 将曾经的代码改改支持属性内引用类的转换. 測试对象为User对象,javabean结构: private ...
- Vue v-bind的使用
1.src <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <tit ...
- smarty课程---最最最简单的smarty例子
smarty课程---最最最简单的smarty例子 一.总结 一句话总结:其实所有的模板引擎的工作原理是差不多的,无非就是在php程序里面用正则匹配将模板里面的标签替换为php代码从而将两者混合为一个 ...
- Android官方文档翻译——Fragment生命周期
网上有的博客写得太乱 不如自己翻译官方文档 Lifecycle 生命周期 Though a Fragment's lifecycle is tied to its owning activity, i ...
- 洛谷P1439 最长公共子序列(LCS问题)
题目描述 给出1-n的两个排列P1和P2,求它们的最长公共子序列. 输入输出格式 输入格式: 第一行是一个数n, 接下来两行,每行为n个数,为自然数1-n的一个排列. 输出格式: 一个数,即最长公共子 ...
- 网站平台的favicon.ico的logo
<link rel="shortcut icon" href="http://www.uuop.com/icotemp/2017061703035984/f ...
- kali之EtterCap学习
EtterCap是一个基于ARP地址欺骗方式的网络嗅探工具,主要适用于交换局域网络.借助于EtterCap嗅探软件,渗透测试人员可以检测网络内明文数据通讯的安全性,及时采取措施,避免敏感的用户名/密码 ...