spark系列二:jdbc数据源实例
Spark SQL支持使用JDBC从关系型数据库(比如MySQL)中读取数据。读取的数据,依然由DataFrame表示,可以很方便地使用Spark Core提供的各种算子进行处理。这里有一个经验之谈,实际上用Spark SQL处理JDBC中的数据是非常有用的。比如说,你的MySQL业务数据库中,有大量的数据,比如1000万,然后,你现在需要编写一个程...
spark系列一:共享变量(broadcast和accumulator)
spark一个重要的特性就是共享变量:共享变量原理:默认情况下,如果在一个算子的函数中使用到了某个外部的变量,那么这个变量的值会被拷贝到每个task中。此时每个task只能操作自己的那份变量副本。如果多个task想要共享某个变量,那么这种方式是做不到的。Spark为此提供了两种共享变量,一种是Broadcast Variable(广...
python实例方法、类方法和静态方法的区别
python实例方法、类方法和静态方法的区别首先看一个实例,类A中的方法依次是实例方法、类方法和静态方法class A(object): def instancemethod(self); print "i am instancemethod" @classmethod def class...
spark系列二:sparkcore和sparksql综合案例
数据格式:日期 用户 搜索词 城市 平台 版本需求:1、筛选出符合查询条件(城市、平台、版本)的数据2、统计出每天搜索uv排名前3的搜索词3、按照每天的top3搜索词的uv搜索总次数,倒序排序4、将数据保存到hive表中1、针对原始数据(HDFS文件),获取输入的RDD2、使用filter算子,去针对输入RDD中的数据,...
hadoop启动时,报ssh: Could not resolve hostname xxx: Name or service not known
错误信息: [root@master hadoop]# sbin/start-dfs.sh 17/08/06 13:08:59 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Starting namenodes on [Java HotSpot(TM) 64-Bit Server VM warning: You have loaded librar...
spark系列一:使用持久化机制和不使用持久化的原理及实战
rdd持久化原理:rdd可以持久化到内存,当对dd执行持久化操作时,每个节点都会将自己的操作的rdd的parition持久化到内存中,并且在之后对该rdd的反复使用中,直接使用内存缓存的partition,这样对于一个反复执行多个操作的场景,就只需要对rdd计算一次即可,后面直接使用该rdd,而需要反复计算多次该rdd。调用cache()或者p...
spark系列一:wordcount程序原理剖析及spark架构原理
wordcount程序原理剖析:spark架构原理:
spark系列一:transaction和action介绍
spark支持两种RDD操作,transaction和action。transaction操作是对已有的RDD创建一个新的RDD;而action操作主要是正对RDD做最后的操作,比如遍历、reduce、保存到文件等,并可以返回结果给driver程序。transaction的特点就是lazy特性。即如果spark应用中定义了transaction操作,那么即使执行该应用,这些操作也不会执行。...
spark系列二:sparksql dataframe常用操作
使用json文件创建 dataframe演示常用操作java版本:package cn.spark.study.core;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaSparkContext;import org.apache.spark.sql.DataFrame;import org.apache.spark.sql.SQLContext;public class dataframecreate { public sta...
spark系列三:sparkstreaming之输入DStream之Kafka数据源实战(基于Direct的方式)
基于Receiver的直接方式,是在Spark 1.3中引入的,从而能够确保更加健壮的机制。替代掉使用Receiver来接收数据后,这种方式会周期性地查询Kafka,来获得每个topic+partition的最新的offset,从而定义每个batch的offset的范围。当处理数据的job启动时,就会使用Kafka的简单consumer api来获取Kafka指定offset范围的数据。...
spark系列一:内核架构及宽窄依赖及提交模式分析
1、内核架构Spark内核架构深度剖析.png2、宽窄依赖划分:.png3、提交模式:YARN的两种提交模式深度剖析.png
spark系列一:transaction操作实战
1、算子实战:java版本:package cn.spark.study.core;import java.util.Arrays;import java.util.Iterator;import java.util.List;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.api.java.JavaSpa...
spark系列二:load和save
对于Spark SQL的DataFrame来说,无论是从什么数据源创建出来的DataFrame,都有一些共同的load和save操作。load操作主要用于加载数据,创建出DataFrame;save操作,主要用于将DataFrame中的数据保存到文件中。Java版本DataFrame df = sqlContext.read().load("users.parquet");df.select("name", "favorite_color").wri...
spark系列二:parquet数据源之自动合并元数据
+--------+----+-----+如同ProtocolBuffer,Avro,Thrift一样,Parquet也是支持元数据合并的。用户可以在一开始就定义一个简单的元数据,然后随着业务需要,逐渐往元数据中添加更多的列。在这种情况下,用户可能会创建多个Parquet文件,有着多个不同的但是却互相兼容的元数据。Parquet数据源支持自动推断出这种情况,并...
spark系列三:sparkstreaming基于hdfs实时wordcount案例
HDFS文件基于HDFS文件的实时计算,其实就是,监控一个HDFS目录,只要其中有新文件出现,就实时处理。相当于处理实时的文件流。streamingContext.fileStream<KeyClass, ValueClass, InputFormatClass>(dataDirectory)streamingContext.fileStream[KeyClass, ValueClass, InputFormatClass](dataDirectory)Spark ...
spark系列二:parquet数据源之自动分区推断
表分区是一种常见的优化方式,比如Hive中就提供了表分区的特性。在一个分区表中,不同分区的数据通常存储在不同的目录中,分区列的值通常就包含在了分区目录的目录名中。Spark SQL中的Parquet数据源,支持自动根据目录名推断出分区信息。例如,如果将人口数据存储在分区表中,并且使用性别和国家作为分区列。那么目录结构...
spark系列一:wordcount程序排序
要求对统计的单词的次数降序排列:java版本:package cn.spark.study.core;import java.util.Arrays;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.api.java.JavaSparkContext;import org.apache.sp...
spark系列二:开窗函数实例
Spark 1.4.x版本以后,为Spark SQL和DataFrame引入了开窗函数,比如最经典,最常用的,row_number(),可以让我们实现分组取topn的逻辑。package cn.spark.study.core;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaSparkContext;import org.apache.spark.sql.DataFrame;import org.a...
spark系列一:java和scala及spark-shell开发wordcount程序
spark学习记录,希望能坚持下去环境:centos6.5+spark1.3+hadoop2.4.11、代码开发:package cn.spark.study.core;import java.util.Arrays;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.api.java.J...
spark系列二:parquet数据源常用操作之使用编程方式加载数据
Parquet是面向分析型业务的列式存储格式,由Twitter和Cloudera合作开发,2015年5月从Apache的孵化器里毕业成为Apache顶级项目,最新的版本是1.8.0。列式存储和行式存储相比有哪些优势呢?1、可以跳过不符合条件的数据,只读取需要的数据,降低IO数据量。 2、压缩编码可以降低磁盘存储空间。由于同一列的数据类型是...