• 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

  • 相关阅读:
    第十二章 满城搜索 [转载]
    第十三章 平安是福
    第三十章 就是他!
    CyberArticle和Live Writer的比较
    NET CMS 大全
    第十五章 禹皇门,震动!
    第六篇 匹马行天下 第二十三章 血流成河,悟!
    第二十八章 震天怒吼
    今天终于找了一个代理登陆了传说中的三个网站
    第十六章 夜深人静
  • 原文地址:https://www.cnblogs.com/wcLT/p/6591953.html
Copyright © 2020-2023  润新知