美文网首页
Spark大数据学习笔记

Spark大数据学习笔记

作者: 黄中一 | 来源:发表于2017-08-21 13:28 被阅读0次
运行:运行spark版的python:pysparkScala版:spark-shell
RDD:数据集会被自动整理成RDD在集群上并行进行
RDD可以有执行一系列的动作(actions),这些动作可以返回值(values),转换(transformations),或者指向新的RDD的指针。

常见行动操作:(会引起实际的计算)
.count()//相当于RDD的len().take(n)//取RDD中n个元素.collect()输出全部数据.saveAsTextFile()输出到文件.reduce()对RDD应用一个reduce函数【reduce函数,对所有元素逐一应用,每次的输入是新的一个跟上一次reduce的返回值lambda x,y: x+y】
常见转化操作:(惰性求值所以不会计算)
RDD1.union(RDD2)//连接RDD

spark基本结构:每一个spark都用一个驱动器程序来发起并行(spark shellsc)driver通过SparkContext连接集群(sc)sc的各种方法都是可以自动进行并行计算的每一个计算图称为一个RDD专门用来做键值对操作的RDD叫pair RDD有对应的一套函数用来根据key进行操作(类似SQL,reduceByKey,groupByKey,join,排序) PageRank例子:1.每个页面向相邻页面发送(自己的排序值/邻居数量)2.每个页面把排序值更新为:0.15+0.85*邻居发过来的值之和

python接口:在python中import并初始化RDD对象,写好后编写sbt(推荐)或者Maven构建文件注明构建的方式,最后用spark-submit程序运行就可以特别地,一些比较大的包(比如SQL)pyspark里面不会内建,而是要import一下
要看有什么能用的函数,只要sc.然后按Tab
SQL:
使用context = SQLContext(sc)//一切sql类都是SQLContext的子类
results = context.sql(“SELECT * FROM people”)
发送一条SQL,返回一个RDD,每个元素一行
查询:
df.select($"colA", $"colB")

数据格式:

1.DataFrame
    // 创建含有单列数据的 DataFrame

    val df = sqlContext.range(0, 16)2.Dataset:    更新版本的DataFrame,有的时候会重载旧的DataFrame    因此当我们从1.6.x迁移到2.0.0的时候, 无需任何修改就直接用上了DataSet.
  能在RDD的基础上扩充功能,要变成Dataset:
  SQLContext.toDS()

数据倾斜:每台机器数据量不一样,每个元素处理的数据量不一样...之类
Steaming:用于把数据分batch 此处输入图片的描述
创建Steaming:1.创建 StreamContext 对象
需要两个参数,一个是 SparkConf 对象(sc),一个是分块间隔时间。 val ssc = new StreamingContext(sc, Seconds(2))

2.创建DStream对象(数据流对象)

        val lines = ssc.socketTextStream("localhost", 9999)
        在 DStream 中,每一条记录都是一行文本
3.对流进行操作        就对DStream 操作就行,用map之类的,返回新的DStream
    此处输入图片的描述
4.启动流        ssc.start()

DStream还支持滑动窗口之类的Steaming通过checkpoint保证其24小时连续工作
MlLib:跟sklearn里面的简洁度差不多:1.生成LabelPoint(用来保存样本的数据和标签的数据结构)    posExamples=spamFeature.map(lambda features:LabeledPoint(1,features))  //把label设为1    trainingData=posExamples.union(negExamples)  //因为有union的存在,所以把正负数据集并在一起比python还要简单
    *也可以转化成其他的数据结构,比如稀疏矩阵(Vector.dense(ndarray)),Rating之类,但是这些都不包含数据处理,比如加法都是没有的
2.model=LogisticRegressionWithSGD.train(trainingData)
TFIDF:HashingTF把每个单词所需要的向量长度S % n =hash值,默认是2的20次方,所以产生的向量长度不超过2的20次方
不能并行的时候:对于不能并行的算法,比如去掉停用词之类的,不能直接写在pyspark上,需要用sc.map(这里写所需python代码)这样就可以在每个单节点上调用。
缓存RDD以重复使用:调用MLlib前,写sc.cache()(一开始就写也没关系)
进一步支持的其他数据科学工具:任何 TensorFlow 程序都可以轻松地移植到 TensorFlowOnSpark 上。通常,只需要修改十行以内的 Python 代码。


Scala基本语法:定义一个新变量一定要用var常量用val有很强的隐式类型转换:比如如果char没有toint方法而string有,你硬是在char上调用tolin就会被转成stri

相关文章

  • Spark Core 学习笔记

    Spark Core 学习笔记 1、Spark 简介 ​ Spark 是一种用于大规模数据处理的统一计算引擎...

  • Spark入门(Python)--1.1 RDD基础

    该系列spark学习笔记基于Python Spark. RDD(弹性分布式数据集)是一个不可变的分布式对象集合,可...

  • pyspark与机器学习

    借助于spark的分布式特性,机器学习与spark的结合可以解决数据规模大、复杂运算时间久的问题。spark提供M...

  • Spark大数据学习笔记

    1.DataFrame // 创建含有单列数据的 DataFrame 需要两个参数,一个是 SparkConf ...

  • Java Spark 简单示例(六)Spark Streamin

    大数据学习交流微信群 前两天分享的Flink 学习笔记中有介绍滚动窗口和滑动窗口。Spark Streaming也...

  • spark 学习笔记

    Spark学习笔记 Data Source->Kafka->Spark Streaming->Parquet->S...

  • spark

    *Spark Spark 函数Spark (Python版) 零基础学习笔记(一)—— 快速入门 1.map与fl...

  • Spark机器学习笔记

    Spark机器学习笔记 机器学习 机器学习是数据通过算法构建出模型并对模型进行评估,评估的性能如果达到要求就拿这个...

  • Spark基础与数仓应用调优

    计算引擎的发展 了解Spark Spark核心理念 数据应用Spark-sql Spark四大组件 Spark-s...

  • 2020-03-17

    spark学习笔记centos安装Oracle VirtualBox: Centos安装Vagrant

网友评论

      本文标题:Spark大数据学习笔记

      本文链接:https://www.haomeiwen.com/subject/yzmcdxtx.html