自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(104)
  • 收藏
  • 关注

原创 Redis:Nosql数据库

RedisNosql技术redis介绍 什么是NoSql NoSql是为了解决高并发、高可扩展、高可用以及高写入而产生的数据库解决方案。NoSql就是Not Only sql。Nosql是非关系型数据库,它是关系型数据库的良好补充,而不能替代关系型数据库。 Nosql数据库分类(了解) 键值(Key-Value)存储数据库相关产品: Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB典型应用: 内容缓存,主...

2020-08-22 21:38:22 372

原创 SQL:上行流量和下行流量

| id| start_time| end_time|flow|+---+-------------------+-------------------+----+| 1|2020-02-18 14:20:30|2020-02-18 14:46:30| 20|| 1|2020-02-18 14:47:20|2020-02-18 15:20:30| 30|| 1|2020-02-18 15:37:23|2020-02-18 16:05:26| 40|.

2020-08-22 13:52:21 424

原创 Sprak3.0 指定udf查找所属地,传入ip查找归属地的UDF

package com._51doit.spark.SQLUDFimport com._51doit.spark.utils.IpUtilsimport org.apache.spark.broadcast.Broadcastimport org.apache.spark.rdd.RDDimport org.apache.spark.sql.{DataFrame, Dataset, SparkSession}object UDFPlaceOfOwnership { /** * Au.

2020-08-21 21:42:41 177

原创 Spark.3.0最新版UDF实现几何平均数

package com._51doit.spark.SQLUDFimport java.langimport org.apache.log4j.{Level, Logger}import org.apache.spark.sql.expressions.Aggregatorimport org.apache.spark.sql.{Dataset, Encoder, Encoders, SparkSession}object UDAFGeo_Mean { /** * Author:.

2020-08-21 21:41:05 322

原创 Spark:3.0:使用最新版UDAF实现AVG

package cn._51doit.spark.day12import org.apache.spark.sql.catalyst.expressions.Encodeimport org.apache.spark.sql.{Encoder, Encoders, SparkSession}import org.apache.spark.sql.expressions.Aggregatorobject UDFDemo5 { def main(args: Array[String]): U.

2020-08-21 21:39:59 559

原创 spark:使用UDAF实现AVG

package com._51doit.spark.SQLUDFimport org.apache.spark.sql.SparkSessionobject UDAFMyAvg { /** * Author: 实现avg * Date: 2020/8/21 * Description: */ def main(args: Array[String]): Unit = { val spark = SparkSession.builder()..

2020-08-21 21:38:16 264

原创 Spark :使用UDF实现ConCat_ws

import org.apache.log4j.{Level, Logger}import org.apache.spark.sql.{DataFrame, Dataset, SparkSession}object ConCat_WS { /** * Author: 指定UDF concat_ws,行转列 * Date: 2020/8/21 * Description: 指定UDF concat_ws,行转列 */ def main(args: Arr..

2020-08-21 21:35:59 399

原创 设置default

/** * Author: 啦啦 * Date: ${DATE} * Description: */

2020-08-21 19:21:43 428

原创 spark:不是我的shuffle

huffle过程:由ShuffleManager负责,计算引擎HashShuffleManager(Spark 1.2)—>SortShuffleManagerspark根据shuffle类算子进行stage的划分,当执行某个shuffle类算子(reduceByKey、join)时,算子之前的代码被划分为一个stage,之后的代码被划分为下一个stage。当前stage开始执行时,它的每个task会从上一个stage的task坐在的节点通过网络拉取所需的数据HashShuffleMan.

2020-08-20 20:03:23 69

原创 行转列,列转行 炸裂 lateral view explode(category)

行转列 CONCAT concat(name,":",age)拼接符返回输入字符串连接后的结果 concat_ws(",")给个参数,后面每个都有,collect_list不去重collect_set 去重列转行 selectconcat(name,":"blood_type)fromv_hangzhuanlie+------+-------------+----------+| name|constellation|blood_type|+------...

2020-08-20 15:45:17 336

原创 sql:case when的案例

case when else end+----+---+------+| id|num|gender|+----+---+------+|悟空| A| 男||娜娜| A| 男||宋宋| B| 男||凤姐| A| 女||热巴| B| 女||慧慧| B| 女|+----+---+------+//求出不同部门男女各多少人。结果如下://A 2 1//B 1 2 selectnum,sum(.

2020-08-20 15:41:34 129

原创 SQL函数查询2020年购买顾客的人数 lag和lead

1:起始行到当前行 rows between unbounded preceding and current row 按照每个name.每个ctime,从上往下加2:起始行到结束行 rows between current row and unbounded following 按照每个name.每个ctime,从下往上加3:Lag往下压 lag(ctime,1,"不知道")over(partition by id order month ) 往下压1行,4lead 往上抬,...

2020-08-20 14:49:19 811

原创 SPARK : SQL连续三天登录的用户

sid,dt,moneyshop1,2019-01-18,500shop1,2019-02-10,500shop1,2019-02-10,200shop1,2019-02-11,600shop1,2019-02-12,400shop1,2019-02-13,200shop1,2019-02-15,100shop1,2019-03-05,180shop1,2019-04-05,280shop1,2019-04-06,220shop2,2019-02-10,100shop2,2019-.

2020-08-19 20:38:02 322

原创 spark parquet!!!

parquet是列式存储,支持压缩如,50--200是name属性,200--300是age属性301--500是fv属性,这就是列式存储当我们拿取数据的时候,如name,那么就可以在50--200之间找,大大提高了效率,不像json,找数据需要全盘读取...

2020-08-18 22:46:00 91

原创 CSV写入jdbc

object CreateDataFrameFromJDBC { def main(args: Array[String]): Unit = { val spark = SparkSession.builder().appName(this.getClass.getSimpleName).master("local[*]").getOrCreate() //val df = spark.read.csv("bigdata\\user.csv") val properties.

2020-08-18 22:25:50 151

原创 Spark :CSV类型文件

读取数据只读取一行,在没有表头的情况下,读取不到文件的属性(string,age)import org.apache.spark.sql.SparkSessionimport org.apache.spark.sql.types.{DoubleType, IntegerType, StringType, StructField, StructType}object CreateDataFrameFromCSV { def main(args: Array[String]): Unit = {

2020-08-18 21:34:24 269

原创 将DataFrame转为Json文件

json在读取数据的时候会读取schema描述信息,读取全部数据,才能确定类型写出文件二种方式//df2.write.mode(SaveMode.Append).json("out/boy") df2.write.mode(SaveMode.Append).format("json").save("out2/boy")读取文件二种方式 //获取数据的schema信息,每一行都有读取,将描述信息返回Driver端了 //val df: DataFrame = spar...

2020-08-18 21:22:31 1709

原创 创建DataFrame

1:创建dataframe,dataframe=RDD+schema所以让RDD和schema连接起来是关键----------------------------------------------------------------------------------------------------------------------------简单数据1,张飞,21,北京,80.02,关羽,23,北京,82.03,赵云,20,上海,88.64,刘备,26,上海,83.0..

2020-08-18 21:01:41 117

原创 序列化问题和多线程问题

序列化问题闭包.函数内部引用了函数外部的类型(如果没有被序列化,就会报错)什么情况下只有一个stage,没有产生shuffle的情况下,那么这个stage就是resultTask每个job有且只有一个ResultTask,前面的都是shuffleMapTaskTask和ResultTask都继承了Task实现了Serializable函数内部引用了没有序列化的类型,当Task中引用了没有序列化的类型,执行程序就会触发 Task Not SerializableTask是在Drever生成.

2020-08-17 20:38:52 231

原创 sortBy如何排序和如何触发Action

在sortby中默认传入排序规则是ascending true.升序第一个参数是一个函数,该函数的也有一个带T泛型的参数,返回类型和RDD中元素的类型是一致的第三个参数是numPartitions,该参数决定排序后的RDD的分区个数,默认排序后的分区个数和排序之前的个数相等,即为this.partitions.size。有一个隐士转换,可以导入隐士转换也可以按照元组进行排序 val value1: RDD[(String, Int, Double)] = value.sortBy(x =&...

2020-08-17 17:04:28 1092

原创 top7

package TeacherTopN2import org.apache.spark.rdd.RDDimport org.apache.spark.{Partitioner, SparkConf, SparkContext}import scala.collection.mutableobject TeacherN07 { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName.

2020-08-17 16:48:47 83

原创 案例-使用单例对象加载规则数据

package cn._51doit.spark.day09import java.io.{BufferedReader, FileInputStream, InputStreamReader}import scala.collection.mutable.ArrayBufferobject IpRulesLoader { //使用IO流读数据,然后放入到一个ArrayBuffer //在object中定义的定义的数据是静态的,在一个JVM进程中,只有一份 val ipRu...

2020-08-17 11:58:37 136

原创 top8

package TeacherTopN2import org.apache.spark.{SparkConf, SparkContext}import org.apache.spark.rdd.{RDD, ShuffledRDD}object TeacherN08 { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("Teacher").setMaster("local[*].

2020-08-17 11:20:45 305

原创 top6

package TeacherTopN2import org.apache.spark.{SparkConf, SparkContext}import org.apache.spark.rdd.RDDimport scala.collection.mutableobject TeacherN06 { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("Teacher").se.

2020-08-17 10:42:28 170

原创 top5

package TeacherTopN2import org.apache.spark.{SparkConf, SparkContext}import org.apache.spark.rdd.RDDimport scala.collection.mutableobject TeacherN05 { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("Teacher")..

2020-08-17 10:41:57 62

原创 TopN4

package TeacherTopN2import org.apache.spark.{Partitioner, SparkConf, SparkContext}import org.apache.spark.rdd.RDDimport scala.collection.mutableobject TeacherN04 { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName.

2020-08-17 10:41:18 67

原创 广播变量写入mysql

package com._51doit.spark.Day07import java.sql.{Connection, Driver, DriverManager, PreparedStatement, SQLException}import com._51doit.spark.utils.IpUtilsimport org.apache.spark.broadcast.Broadcastimport org.apache.spark.{SparkConf, SparkContext}imp.

2020-08-15 20:12:28 132

原创 Spark:TopN003

package TeacherTopN2import org.apache.spark.{Partitioner, SparkConf, SparkContext}import org.apache.spark.rdd.RDDimport scala.collection.mutableobject TeacherN03 { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName..

2020-08-14 15:22:50 87

原创 Spark:TopN002

package Restartimport org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}object TeacherTopN002 { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName(this.getClass.getCanonicalName).setMaster("loc..

2020-08-14 14:59:49 99

原创 Spark:TopN001

package Restartimport org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}object TeacherTopN001 { def main(args: Array[String]): Unit = {/*//http://bigdata.51doit.cn/laozhao http://bigdata.51doit.cn/laozhao http://big..

2020-08-14 14:41:12 111

原创 Spark:将二表关联

package Restartimport com.alibaba.fastjson.{JSON, JSONException}import org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}object JoinOrderTable { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppN.

2020-08-14 14:22:06 235

原创 Spark:连续三天登录的用户

package Restartimport java.text.SimpleDateFormatimport java.util.{Calendar, Date}import org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}//查询连续三天登录的用户object DataOne { def main(args: Array[String]): Unit = { val conf..

2020-08-14 13:44:31 127

原创 Spark:cache和persist和checkpoint

只缓存到内存cache底层调用的是persist方法,可以指定其他存储级别cache和persist方法,严格来说,不是Transformation,应为没有生成新的RDD,只是标记当前rdd要cache或persistcache、persist的使用场景:一个application多次触发Action,为了复用前面RDD计算好的数据,避免反复读取HDFS(数据源)中的数据和重复计算缓存,可以将数据缓存到内存或磁盘【executor所在的磁盘】,第一次触发action才放入到内存或磁盘,以后再出

2020-08-14 11:06:07 143

原创 Spark:repartition和coalesce

repartition底层调用的是coalesce(true)一定具有shuffle,它一般是将少分区变化为多分区repartition底层调用了mappartitionsRDD将传入的函数key生成随机数,value是数据本身shuffleRDD将随机生成的key进去你指定的分区--使用HashpartitioncoalesceRDD将迭代器压平mapPartition-将value数据取出---------------------------------------------.

2020-08-14 10:55:30 256

原创 Spark::groupByKey和reduceBykey 和collect

groupByKey和reduceByKey都具有shuffle都是聚合操作reduceByKey:具有预聚合,在局部聚合时将value进行相加或者指定操作,groupByKey:局部聚合时不指定value操作.reduceBykey相对groupByKey减少了网络传输collect测试环境源码注解中显示,将结果返回到Driver端,collect如果 返回数据太大会报错....

2020-08-14 10:29:48 182

原创 Spark:map和mappartition

map是对Rdd中 的每一个元素作用上一个函数,mappartition是将函数作用到partition如果需要写数据或者创建实例,那么应该选择partition

2020-08-14 10:13:13 367

原创 Spark:广播变量

1.0.1.0|1.0.3.255|16777472|16778239|亚洲|中国|福建|福州||电信|350100|China|CN|119.306239|26.0753021.0.8.0|1.0.15.255|16779264|16781311|亚洲|中国|广东|广州||电信|440100|China|CN|113.280637|23.1251781.0.32.0|1.0.63.255|16785408|16793599|亚洲|中国|广东|广州||电信|440100|China|CN|113.280

2020-08-14 10:05:28 390

原创 spark案例<难>

1:需求2:代码实现package Day07import java.text.SimpleDateFormatimport java.util.Dateimport org.apache.spark.rdd.RDDimport org.apache.spark.{Partitioner, SparkConf, SparkContext}import scala.collection.mutable object XiangMu { def main(a..

2020-08-13 23:26:16 104

原创 将Spark数据写入mysql中

package Day07import java.sql.{Connection, DriverManager, PreparedStatement, SQLException}import com._51doit.spark.utils.IpUtilsimport org.apache.spark.broadcast.Broadcastimport org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkCon...

2020-08-13 23:17:49 229

原创 Spark:glom

语法val newRdd = oldRdd.golm源码def glom() : org.apache.spark.rdd.RDD[scala.Array[T]] = { /* compiled code */ }1作用将每一个分区形成一个数组,形成新的RDD类型时RDD[Array[T]]例子package com.day1import org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, Spa.

2020-08-09 22:23:43 231

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除