spark教程】的更多相关文章

某大神总结的spark教程, 地址 http://litaotao.github.io/introduction-to-spark?s=inner…
本地执行Spark SQL程序: package com.fc //import common.util.{phoenixConnectMode, timeUtil} import org.apache.spark.sql.SQLContext import org.apache.spark.sql.functions.col import org.apache.spark.{SparkConf, SparkContext} /* 每天执行 */ object costDay { def mai…
数据库也是 spark 数据源创建 df 的一种方式,因为比较重要,所以单独算一节. 本文以 postgres 为例 安装 JDBC 首先需要 安装 postgres 的客户端驱动,即 JDBC 驱动,这是官方下载地址,JDBC,根据数据库版本下载对应的驱动 上传至 spark 目录下的 jars 目录 并设置环境变量 export SPARK_CLASSPATH = /usr/lib/spark/jars 编程模板 如何操作数据库,不同的版本方法不同,网上的教程五花八门,往往尝试不成功. 其实…
SparkContext SparkContext 是在 spark 库中定义的一个类,作为 spark 库的入口点: 它表示连接到 spark,在进行 spark 操作之前必须先创建一个 SparkContext 的实例,并且只能创建一个: 利用 SparkContext 实例创建的对象都是 RDD,这是相对于 SparkSession 说的,因为 它创建的对象都是 DataFrame: 创建 sc class SparkContext(__builtin__.object): def __i…
sparkSQL 也允许用户自定义函数,包括 UDF.UDAF,但没有 UDTF 官方 API class pyspark.sql.UDFRegistration(sparkSession)[source] register(name, f, returnType=None)[source] Register a Python function (including lambda function) or a user-defined function as a SQL function. Pa…
spark 有三大引擎,spark core.sparkSQL.sparkStreaming, spark core 的关键抽象是 SparkContext.RDD: SparkSQL 的关键抽象是 SparkSession.DataFrame: sparkStreaming 的关键抽象是 StreamingContext.DStream SparkSession 是 spark2.0 引入的概念,主要用在 sparkSQL 中,当然也可以用在其他场合,他可以代替 SparkContext: S…
DStream 其实是 RDD 的序列,它的语法与 RDD 类似,分为 transformation(转换) 和 output(输出) 两种操作: DStream 的转换操作分为 无状态转换 和 有状态转换,且 tansformation 也是惰性的: DStream 的输出操作请参考 我的博客 Streaming 无状态转换 转换操作只作用于单个 RDD,即单个数据流的 batch: 例如,每次根据采集到的数据流统计单词个数,第一次采集到的是  a 2个 b 1个,第二次采集到的是 a 1个…
Spark Streaming 是一个分布式数据流处理框架,它可以近乎实时的处理流数据,它易编程,可以处理大量数据,并且能把实时数据与历史数据结合起来处理. Streaming 使得 spark 具有了流式处理的能力,它为数据流式处理提供了高层抽象,底层仍然是 spark,所以它具有 spark 的可扩展.可容错.高吞吐量的特点,而且它可以与 spark 的各种库结合使用,如 sparkSQL.MLib.ml 等 总体架构 Spark Streaming 是一个伪实时的流处理框架,它处理的是一个…
spark 使用的架构是无共享的,数据分布在不同节点,每个节点有独立的 CPU.内存,不存在全局的内存使得变量能够共享,驱动程序和任务之间通过消息共享数据 举例来说,如果一个 RDD 操作使用了驱动程序中的变量,spark 会将这个变量的副本和 task 一起发送给 executor 中的执行者,对该变量的更新只存在于 task 的内部,并不会回传给驱动程序: 如果这个任务分为多个阶段,每个阶段开始时,驱动程序会把 变量 发送给 worker: 在实际场景中,驱动程序在 task 间共享一个巨大…
shuffle 简介 shuffle 描述了数据从 map task 输出到 reduce task 输入的过程,shuffle 是连接 map 和 reduce 的桥梁: shuffle 性能的高低直接影响了整个程序的性能和吞吐量,因为在 分布式 情况下,reduce task 需要跨节点去拉取其他节点上 map task 的结果,这需要消耗网络资源.内存 IO 和磁盘 IO: shuffle 可分为两部分:map 阶段的数据准备和 reduce 阶段的数据拷贝处理,一般 map 端的 shu…