python大数据
http://blog.csdn.net/xnby/article/details/50782913
一句话总结:spark是一个基于内存的大数据计算框架,
上层包括了:Spark SQL类似HiveQL, Spark Streaming 实时数据流计算,MLlib 机器学习算法包,GraphX 图算法包
底层 SparkCore 实现了基本功能:任务调度,内存管理,错误恢复,存储交互等,SparkCore还包含了对RDD(弹性分布式数据集)的API定义
RDD是Spark对计算任务封装,现在不懂也没关系,后面会随着实例进一步理解RDD
一、Spark安装:
单机版本spark安装相当简单,从官网下载一个源码包,解压即可。http://spark.apache.org/downloads.html
解压,把bin目录加入环境变量,pyspark即可启动python shell
单机模式启动pyspark后
一个简单的demo:
>>>lines = sc.textFile("1.txt") //创建一个RDD,“1.txt为本地存在的文件
>>> lines
MapPartitionsRDD[4] at textFile at NativeMethodAccessorImpl.java:-2
>>> lines.count()
7
通过lines对象,可以调用基本的函数,统计单词数等
例子中sc是什么呢?SparkContext。
每一个spark应用都有一个驱动器程序()来发起集群上的各种并行操作,pyspark即驱动器程序,
驱动器程序通过一个SparkContext对象来访问Spark,sc代表对计算集群的一个连接。
驱动器程序一般要管理多个执行器节点,将计算任务分发给不同的节点计算。
下面继续完成大数据下的Helloword:word count 程序:
>>> words = lines.flatMap(lambda line: line.split(' '))
>>> words
PythonRDD[8] at RDD at PythonRDD.scala:43
>>> wc = words.map(lambda x:(x,1))
>>> wc
PythonRDD[9] at RDD at PythonRDD.scala:43
>>> from operator import add
>>> counts = wc.reduceByKey(add)
>>> counts
PythonRDD[14] at RDD at PythonRDD.scala:43
>>> counts.saveAsTextFile("wc")
示例中可以看出 lines,words,wc,counts都是RDD对象实例
每一步操作在Spark都是RDD的一个抽象
独立应用,不通过shell怎么写独立的脚本呢,
直接编写校本文件,然后通过spark-submit提交即可
eg:worldcount程序的py脚本如下:
########first.py############
from pyspark import SparkConf, SparkContext
from operator import add
conf = SparkConf().setMaster("local").setAppName("My App")
sc = SparkContext(conf=conf)
lines = sc.textFile("/Users/xiabin/1.txt")
words = lines.flatMap(lambda line: line.split(' '))
wc = words.map(lambda x:(x,1))
counts = wc.reduceByKey(add)
counts.saveAsTextFile("wcres")
########first.py############
测试中还发现,spark-submit可以智能的识别应用的一些py模块,比如import一个myconf.py文件
或者一个包都可以无需添加任何代码运行(只单机实验)。
第一次接触下来对比写hadoop的mapreduce代码,spark的封装调用相对来说简单了不少。
附加信息:
http://www.tuicool.com/articles/iAbInuj
http://blog.csdn.net/kwu_ganymede/article/details/51832427
python大数据的更多相关文章
- 《零起点,python大数据与量化交易》
<零起点,python大数据与量化交易>,这应该是国内第一部,关于python量化交易的书籍. 有出版社约稿,写本量化交易与大数据的书籍,因为好几年没写书了,再加上近期"前海智库 ...
- 学习推荐《零起点Python大数据与量化交易》中文PDF+源代码
学习量化交易推荐学习国内关于Python大数据与量化交易的原创图书<零起点Python大数据与量化交易>. 配合zwPython开发平台和zwQuant开源量化软件学习,是一套完整的大数据 ...
- 零起点Python大数据与量化交易
零起点Python大数据与量化交易 第1章 从故事开始学量化 1 1.1 亿万富翁的“神奇公式” 2 1.1.1 案例1-1:亿万富翁的“神奇公式” 2 1.1.2 案例分析:Python图表 5 1 ...
- Python大数据与机器学习之NumPy初体验
本文是Python大数据与机器学习系列文章中的第6篇,将介绍学习Python大数据与机器学习所必须的NumPy库. 通过本文系列文章您将能够学到的知识如下: 应用Python进行大数据与机器学习 应用 ...
- python大数据工作流程
本文作者:hhh5460 大数据分析,内存不够用怎么办? 当然,你可以升级你的电脑为超级电脑. 另外,你也可以采用硬盘操作. 本文示范了硬盘操作的一种可能的方式. 本文基于:win10(64) + p ...
- 零基础入门到精通:Python大数据与机器学习之Pandas-数据操作
在这里还是要推荐下我自己建的Python开发学习群:483546416,群里都是学Python开发的,如果你正在学习Python ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python ...
- Python大数据应用
一.三国演义人物出场统计 先检查安装包 1.jieba库基本介绍 (1)jieba库概述 jieba是优秀的中文分词第三方库 中文文本需要通过分词获得单个的词语 jieba是优秀的中文分词第三方库,需 ...
- Python大数据:jieba 中文分词,词频统计
# -*- coding: UTF-8 -*- import sys import numpy as np import pandas as pd import jieba import jieba. ...
- Python大数据:信用卡逾期分析
# -*- coding:utf-8 -*- # 数据集成 import csv import numpy as np import pandas as pd import matplotlib.py ...
随机推荐
- win10系统常用操作
1.打开控制面板 (1)选中“此电脑”,右键选择“属性”. (2)可见 控制面板主页 2.设置环境变量和系统变量 (1)选中“此电脑”,右键选择“属性”. (2)可见 控制面板主页 (3)点击高级系统 ...
- mfix的Negative gas density报错解决
错误很难定位,因为编译正常,而是运行过程中会告知出现Negative gas density,并且不收敛,没有其他错误信息.最后通过一步步定位发现是由于 IC_EP_g(1) < EP_star ...
- HDU - 4686 函数积的前缀和
题意:求\(\sum_{i=0}^{n-1}a_ib_i\) 其中,\(a_i=A_xa_{i-1}+A_y,b_i=B_xb_{i-1}+B_y\) 构造矩阵分别维护\(a_ib_i,a_i,b_i ...
- JavaScript的type属性等于text/html 例子
在使用JavaScript标签<script>的时候,其中type最常用的就是text/javascript 其实这个type还有其他用法,下面直接给出例子: type属性为text/ht ...
- SQL Server Reporting Service(SSRS) 第七篇 常见错误汇总
1. The current action cannot be completed. The user data source credentials do not meet the requirem ...
- 图解 TCMalloc
https://zhuanlan.zhihu.com/p/29216091 图解 TCMalloc hellocode 永远年轻 693 人赞了该文章 前言 TCMalloc 是 Google 开 ...
- (转) Linux Shell经典实例解析
原文:http://blog.csdn.net/yonggeit/article/details/72779955 该篇博客作为对之前Linux Shell常用技巧和高级技巧系列博客的总结,将以Ora ...
- 一些Andoid studio常用的快捷键
常用快捷键 Android Studio是基于IntelliJ IDEA的,我们都知道,IDEA是一个很方便很好用的IDE,其中有许多快捷键,但是太多快捷键我们也记不住. 其实,我们可以记住几个 ...
- 每日一问:Python生成器和迭代器,with上下文管理工具
1.生成器: 1.1 起源: 如果列表中有一万个元素,我们只想要访问前面几个元素,对其进行相关操作,通过for循环方式效率太低,并且后面的元素会浪费内存,还会受到内存限制,所以产生生成器来解决这个问题 ...
- 解决VMWARE 虚拟机安装64位系统“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态
VMWARE WORKSTATION 在安装64为操作系统报错,报错内容如图: 错误提示已经很清楚了,需要在BIOS 中打开intel VT-x g功能,开启此功能的前提是: 1.首先要确定的就是你的 ...