spark-day1

#!/usr/bin/python
# -*- coding: utf_8 -*-
from pyspark import SparkConf, SparkContext
import os, time


if __name__ == '__main__':
    # Create SparkConf
    # sparkConf:是一个SparkConf的对象,用来初始化程序,配置应用,传递初始参数
    # setAppName:指定rdd名称;setMaster:指定运行的线程
    sparkConf = SparkConf() \
        .setAppName("python Spark WordCount") \
        .setMaster("local")

    # Create SparkContext
    # sc:是一个SparkContext的对象,代表了对计算集群的连接,用来访问Spark,创建RDD
    # 将sprkConf作为参数传递给SparkContext
    sc =SparkContext(conf=sparkConf)

    '''
        创建RDD:
            方式一:从本地集和并行化创建
            方式二:从外部文件系统读取数据(HDFS)
    '''
    # ----------第一种方式:从集合并行化创建RDD----------
    datas = ["hadoop spark", "spark hive spark sql", "spark hadoop sql spark"]

    # parallelize方法:接收一个list数据集作为参数,可以快速创建RDD;缺点:需要将数据集都加载到内存中
    rdd1 = sc.parallelize(datas)


    # ----------第二种方式:从外部存储中读取数据创建RDD----------

    # textfile方法:将文本文件读取为一个存储字符串的RDD
    rdd2 = sc.textFile('T_CAR_20150401.csv')

    # 转化操作:
    car_rdd = rdd2.filter(lambda x:'FB5018' in x)
    car2_rdd = rdd2.filter(lambda x:'FB5093'in x)
    total_rdd = car_rdd.union(car2_rdd)

    # 行动操作:
    # count:获取个数
    # first:获取第一条数据
    print rdd1.count()
    print rdd1.first()
    print total_rdd.count()
    print total_rdd.first()

    # 休眠一段时间,为WEB UI进行监控
    time.sleep(100000)

    # SparkContext stop
    sc.stop()

猜你喜欢

转载自www.cnblogs.com/octopuszy/p/9061544.html