
Spark
spark知识点
嘉平11
这个作者很懒,什么都没留下…
展开
-
spark调优之大rdd倾斜解决:sample采样倾斜key单独进行join
spark调优之随机前缀当两个大表出现数据倾斜,那么不能用mapjoin(也就是broadcast)来解决的时候,我们可以采用随机前缀+单独join->union正常数据join结果来解决;代码:解释:rdd2中key为“001”的数据非常多,导致数据倾斜,那么我们把rdd1、rdd2中的key为001的数据单独拿出来join;剩下的正常的key自己进行join,这两个join的结果最后进行union对于rdd1的数据,每一条数据加上0、1、2、3、4的前缀,rdd1的数据量变成原来的5倍原创 2020-08-22 17:04:01 · 466 阅读 · 0 评论 -
zk、hbase、redis保存Sparkstreaming 的offset
一、zk:import cn.qphone.spark.`trait`.LoggerTraitimport cn.qphone.spark.utils.{CommonUtils, SparkUtils}import kafka.common.TopicAndPartitionimport kafka.message.MessageAndMetadataimport kafka.serializer.StringDecoderimport org.apache.curator.framewo原创 2020-06-26 21:08:54 · 262 阅读 · 0 评论 -
Spark写数据到HBase
实现的功能:从hive表中读取订单表,计算每个用户在30天内下单的金额,然后存到HBasepackage pro3import org.apache.hadoop.hbase.{HBaseConfiguration, HColumnDescriptor, HTableDescriptor, TableName}import org.apache.hadoop.hbase.clien...原创 2020-03-23 18:46:24 · 447 阅读 · 0 评论 -
Spark代码练习——充值SparkSQL实现
数据文件为:“JsonTest02.json”用SparkCore或SparkSQL实现均可,需求如下:统计每个用户充值总金额并降序排序(10分)统计所有系统类型登录总次数并降序排序(10分)统计所有用户在各省登录的次数的Top3(20分)部分字段:phoneNum:手机号(用户账号)terminal:系统类型province:省份money:充值金额status:充值状态...原创 2020-02-27 22:12:11 · 703 阅读 · 0 评论 -
Spark代码练习——CDN日志,SparkCore实现
一、CDN日志练习:日志格式为:IP 命中率(Hit/Miss) 响应时间 请求时间 请求方法 请求URL 请求协议 状态吗 响应大小 referer 用户代理100.79.121.48 HIT 33 [15/Feb/2017:00:00:46 +0800] "GET http://cdn.v.abc.com....原创 2020-02-27 19:00:51 · 601 阅读 · 0 评论 -
Spark笔记——基础底层、sparkcluster任务提交流程
一、driver、executor1、SparkContext是在哪一端生成的? Driver2、RDD是在哪一端生成的? Driver3、调用RDD的算子(Transformation和Action)是在哪一端调用的? Driver4、RDD在调用Transformation和Action时需要传入一个函数,函数是在哪一端声明和传入的? Driver5、RDD在调用Tr...原创 2020-02-27 16:53:21 · 241 阅读 · 0 评论 -
SparkStreaming笔记01——基础概念、原语
一、基础概念Spark Streaming类似于Apache Storm,用于流式数据的处理。根据其官方文档介绍,Spark Streaming有高吞吐量和容错能力强等特点。Spark Streaming支持的数据输入源很多,例如:Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等等。数据输入后可以用Spark的高度抽象原语如:map、reduce、join、windo...原创 2020-02-26 21:03:19 · 465 阅读 · 0 评论 -
SparkStreaming笔记02——wordcount、UpdateStateByKey、Transform 、Window Operations
一、SparkStreamingWC这里的wordcount没有实现累加,本地运行以下代码后,在mini1上输入:nc -lk 9999然后输入单词,在idea的控制台上就可以出现单词统计结果import org.apache.spark.streaming.dstream.{DStream, ReceiverInputDStream}import org.apache.sp...原创 2020-02-26 20:51:35 · 240 阅读 · 0 评论 -
SparkSQL代码04——输入输出、JDBC
一、SparkSQL输入输出1.1 SparkSQL输入写法一:SparkSession对象.read.json("路径")SparkSession对象.read.jdbc("路径")SparkSession对象.read.csv("路径")SparkSession对象.read. parquet("路径") Parquet格式经常在Hadoop生态圈中被使用,它也支持Sp...原创 2020-02-24 17:44:13 · 374 阅读 · 0 评论 -
SparkSQL代码笔记03——连接hive
spark集群/usr/local/spark-2.2.0-bin-hadoop2.6/bin/spark-submit \--class scalaBase.day15.HiveCodeDemo2 \--master spark://mini1:7077 \--executor-memory 512m \--total-executor-cores 2 \--jars /ajar...原创 2020-02-24 13:09:08 · 487 阅读 · 0 评论 -
SparkSQL代码笔记02——UDF、UDAF
一、UDFpackage com.zgm.sc.day14import org.apache.spark.sql.SparkSession/** * 用udf实现字符串拼接 */object UDFDemo1 { def main(args: Array[String]): Unit = { val spark = SparkSession ....原创 2020-02-23 16:39:39 · 216 阅读 · 0 评论 -
SparkSQL代码笔记01——创建SparkSession、RDD和DF和DS相互转换、DSL和SQL风格
一、创建sparksession的几种方法:package scalaBase.day13import org.apache.spark.SparkConfimport org.apache.spark.sql.{DataFrame, SparkSession}object sparkSessionDemo1 { def main(args: Array[String]): U...原创 2020-02-22 23:13:45 · 1994 阅读 · 0 评论 -
SparkCore代码笔记05——JDBCRDD
查询mysql数据库结果,生成一个rdd需要导入依赖mysql-connector-java这个依赖package com.qf.gp1921.day12import java.sql.DriverManagerimport org.apache.spark.rdd.JdbcRDDimport org.apache.spark.{SparkConf, SparkContex...原创 2020-02-21 19:06:25 · 198 阅读 · 0 评论 -
SparkCore代码笔记04——sparkcore 求各省ip访问量
任务:http.log中有访问记录,第二项是ip地址20090121000132095572000|125.213.100.123|show.51.com。。。。。。。。。。。。。。。。。。。。。。。。。。。。ip.txt中有ip的基本信息startIP endIP startIP(long类型的) endIP(long类型) 洲 国家 省、、、、、1.0.1...原创 2020-02-21 18:58:39 · 729 阅读 · 0 评论 -
Spark报错1: java.net.URISyntaxException:
报错:Exception in thread "main" java.lang.IllegalArgumentException: java.net.URISyntaxException: Illegal character in scheme name at index 0: D://MyBigData/Aspark/data/ipsearch/ip.txt原因:val rdd1...原创 2020-02-21 18:53:37 · 860 阅读 · 0 评论 -
SparkCore代码笔记03——自定义排序、自定义分区、累加器、广播变量
一、自定义排序自定义排序 Spark对简单的数据类型可以直接排序,但是对于一些复杂的条件就需要用自定义排序来实现了1.第一种定义方法:用到了隐式转换package scalaBase.day11import org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}c...原创 2020-02-20 18:53:42 · 322 阅读 · 0 评论 -
Scala基础知识01——一些常见特殊类、基础数据类型
一、几种常见的特殊类1、option[T]option[T]主要是用来避免NullPointerException异常的(Option本身是一个容器)Option、 None、 Some 是 scala 中定义的类型,它们在 scala 语言中十分常用,因此这三个类型很重要。 None、 Some 是 Option 的子类,它主要解决值为 null 的问题,在 java 语言中,对于定...原创 2020-02-20 16:35:03 · 340 阅读 · 0 评论 -
Spark基础知识04——窄依赖、宽依赖、DAG、缓存
一、宽窄依赖RDD和它依赖的父RDD(s)的关系有两种不同的类型,即窄依赖(narrow dependency)和宽依赖(wide dependency)。窄依赖:窄依赖指的是每一个父RDD的Partition最多被子RDD的一个Partition使用总结:窄依赖我们形象的比喻为独生子女宽依赖宽依赖指的是多个子RDD的Partition会依赖同一个父RDD的Partit...原创 2020-02-19 22:40:05 · 1652 阅读 · 0 评论 -
SparkCore代码笔记02——广告top3、基站停留时间
一、案例练习:统计广告ID 需求一:统计每个省份点击广告ID的top3 需求二:统计每个省份每个小时的广告ID的top3部分数据:时间戳 省份 城市 用户id 广告id1562085629599 Hebei Shijiazhuang 564 1156208562...原创 2020-02-19 20:57:30 · 385 阅读 · 0 评论 -
PV、UV的几种写法
一、HQL写法uv:count(distinct)太影响性能,以下为改进:selecttmp.shop,count(1) as uvfrom(select user_id,shop from second_visit group by user_id,shop)tmpgroup by shop;pvselect shop,count(uid) from secon...原创 2020-02-19 15:38:00 · 877 阅读 · 0 评论 -
Spark基础知识02-基础算子的比较
一、map、mapPartitions、mapPartitionsWithIndex1.map、mapPartitions比较:map传入一个函数,将其作用到每一个元素上def map[U: ClassTag](f: T => U): RDD[U] = withScope { val cleanF = sc.clean(f) new MapPartitions...原创 2020-02-16 23:05:41 · 433 阅读 · 0 评论 -
Spark基本知识01
一、RDD概念以及五大特性1.概念: RDD是Resilient Distributed Dataset(弹性分布式数据集)的简称。 实际上是一个数据的描述,它记录了要分析的数据所存的节点和块的大小和副本的数量等等元数据信息,当然还包括要计算的一些逻辑 分布式的数据集,是一种数据描述,不可变,可分区,可并行计算的集合。2.弹性的体现: 自动...原创 2020-02-12 18:59:37 · 253 阅读 · 0 评论 -
SparkCore代码笔记01——启动
一、启动spark在启动spark时:/usr/local/spark-2.2.0-bin-hadoop2.6/sbin/start-all.sh要注意的是:其实我们已经配置的环境变量,所以执行start-dfs.sh和start-yarn.sh可以不切换到当前目录下,但是start-all.sh、stop-all.sh和/start-history-server.sh这几个命令h...原创 2020-02-11 23:10:37 · 154 阅读 · 0 评论 -
spark遇到的erro1——java.lang.ClassNotFoundException:
java.lang.ClassNotFoundException: scalaBase.day7.sparkWC2 at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ...原创 2020-02-11 22:58:49 · 791 阅读 · 0 评论 -
scala简单练习01
1.集合里有多个数组,每个数组的长度相同,将每个数组的相同下标下的元素进行聚合。 例如:Seq(Array(2,3,4), Array(1,2,3), Array(4,5,6)) 结果为:Array(7,10,13) val seq: Seq[Array[Int]] = Seq(Array(2,3,4),Array(1,2,3),Array(4,5,6))法一: val i...原创 2020-02-10 23:14:53 · 195 阅读 · 0 评论 -
快学Scala—day1
1.在Scala REPL(read->evaluateion->print->loop)中,计算3的平方根,然后再对该值求平方。现在,这个结果与3相差多少? 提示:scala.math 找相应的方法package job1object exc1 { def main(args: Array[String]): Unit = { val a=3 val...原创 2020-02-10 23:13:28 · 222 阅读 · 0 评论 -
Scala之高阶函数
Scala混合了面向对象和函数式的特性,我们通常将可以做为参数传递到方法中的表达式叫做函数。在函数式编程语言中,函数是“头等公民”,高阶函数包含:作为值的函数、匿名函数、闭包、柯里化等等。闭包:闭包:就是能读取其他函数(方法)内部的函数(方法)*/object closurerest{//声明一个方法def sum(f:Int=>Int):(Int,Int)=&...原创 2020-02-09 17:20:59 · 114 阅读 · 0 评论 -
WordCount的几种写法
一、Spark版本 val list1=List("hello lucy","hi vivi","bye bye lucy","hello tom") val tuples = list1.flatMap(_.split(" ")).map(x=>(x,1)) .groupBy(x=>x._1) .mapValues(_.size) .t...原创 2020-02-09 16:03:46 · 609 阅读 · 0 评论