spark使用

原创 2016年05月31日 10:36:04

一、基础概念:

 RDD对象:

        spark的核心对象,

       文件等加载均转化为RDD对象(SparkContext.textFile(input_file)  )

 RDD对象属性、方法:

map、reduce、flatmap、reducebykey

二、使用

1.声明:

from pyspark import SparkContext, SparkConf  #pyspark ,python-spark支持


appName = "程序名"   #也可以用于web上监控
master = "spark://服务器名:端口" #服务器名可以使用ip

conf = SparkConf().setAppName(appName).setMaster(master)
sc = SparkContext(conf=conf)


说明:

val sc = new SparkContext(master, appName, [sparkHome], [jars])

参数master指明集群的地址,是字符串,master可以是"local"--在本地单机运行,也可以是Spark或者Mesos集群的URL。
参数appName是Spark应用的名称,会在集群的web界面里显示出来。
参数sparkHome是spark的安装目录,注意,集群内所有节点的Spark必须安装在同样的目录下。
参数jars是打包后的Spark应用,是本地目录,这些Jar包会被复制发送到集群内的所有节点执行。


2.文件加载及处理:

a.处理:

"""odflow.py"""
from pyspark import SparkContext

fileDir = "/TripChain3_Demo.txt"
# sc = SparkContext("local", "ODFlow")
sc = SparkContext("spark://ITS-Hadoop10:7077", "ODFlow")
lines = sc.textFile(fileDir)

# python不能直接写多行的lambda表达式,所以要封装在函数中
def toKV(line):
    arr = line.split(",")
    t = arr[5].split(" ")[1].split(":")
    return (t[0]+t[1]+","+arr[11]+","+arr[18],1)

r1 = lines.map( lambda line : toKV(line) ).reduceByKey(lambda a,b: a+b)
# 排序并且存入一个(repartition)文件中
r1.sortByKey(False).saveAsTextFile("/pythontest/output")

b.发布

spark-submit \
  --master spark://ITS-Hadoop10:7077 \
  odflow.py

2.1 单个文件处理

2.1.1 无配置文件情况

    data_file = sc.textFile(input_file)  #sc为SparkContext对象
    data_file.map(handle_one_line).filter(lambda x: len(x.split("\t"))==7).saveAsTextFile(output_file)


2.1.2 有配置文件情况


2.2 两个文件(多个文件)处理


相关文章推荐

SparkContext类和SparkConf类

任何Spark程序都是SparkContext开始的,SparkContext的初始化需要一个SparkConf对象,SparkConf包含了Spark集群配置的各种参数。 初始化后,就可以使用S...

spark学习10之将spark的AppName设置为自动获取当前类名

每次输入好麻烦,故可以: object CollaborativeFilteringSpark { val conf = new SparkConf().setMaster("local").se...

Windows下IntelliJ IDEA中调试Spark Standalone

参考:http://dataknocker.github.io/2014/11/12/idea%E4%B8%8Adebug-spark-standalone/ 转载请注明来自:http://ww...

spark配置IntelliJ开发环境详解

1.花一天半时间配置spark开发环境RD同学开发代码肯定需要开发环境。为了配置好spark的本地开发测试环境,宝宝前后花了一天半的时间。各种踩坑各种无奈各种崩溃。文章以下内容都是宝宝一天半时间的实践...

Spark配置参数详解

以下是整理的Spark中的一些配置参数,官方文档请参考Spark Configuration。 Spark提供三个位置用来配置系统: Spark属性:控制大部分的应用程序参数,可以用SparkCon...

Spark大师之路:Spark的配置系统

简介 Spark的配置系统主要分为三个部分:第一个部分是控制Spark

Lambda表达式让Spark编程更容易

近日,Databricks官方网站发表了一篇博文,用示例说明了lambda表达式如何让Spark编程更容易。文章开头即指出,Spark的主要目标之一是使编写大数据应用程序更容易。Spark的Scala...

Spark学习笔记--Spark基础知识

1、RDD表示分布在多个计算节点上的可以并行操作的元素集合,是spark主要的变成抽象。 Spark Streaming 是 Spark 提供的对实时数据进行流式计算的组件 Spark是一个用于集...

Lambda表达式详细总结

(一)输入参数 在Lambda表达式中,输入参数是Lambda运算符的左边部分。它包含参数的数量可以为0、1或者多个。只有当输入参数为1时,Lambda表达式左边的一对小括弧才可以省略。输入参数...
  • wisgood
  • wisgood
  • 2016年06月01日 22:20
  • 1080

Spark RDD中的aggregate函数 -JAVA8 lambda风格实现求平均数(不用mean函数)

Spark RDD中的aggregate函数 -JAVA8 lambda风格实现求平均数
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spark使用
举报原因:
原因补充:

(最多只允许输入30个字)