学习笔记
CHSN
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MySQL笔记1
在删除时不能对删除操作的表进行其他的操作,也就是你不能使用应该生成一个临时表的形式原创 2022-06-02 22:33:32 · 289 阅读 · 1 评论 -
学习笔记(MySQL巧妙的排序号)
SELECT e1.first_nameFROM ( SELECT e2.first_name, ( SELECT COUNT(*) FROM employees AS e3 WHERE e3.first_name <= e2.first_name ) AS rowid FROM employees AS e2 ) AS e1WHERE e1.rowid % 2 = 1;可以实现对表记录添加...原创 2022-05-25 22:04:30 · 407 阅读 · 0 评论 -
transform和foreachRDD
transform算子源码: /** * Return a new DStream in which each RDD is generated by applying a function * on each RDD of 'this' DStream. * 返回一个新的 DStream,其中每个 RDD 是通过对 'this' DStream 的每个 RDD 应用一个函数来生成的。 */ def transform[U: ClassTag](transformFunc原创 2022-05-22 10:10:02 · 368 阅读 · 0 评论 -
笔记(SQL练习)
SELECT a.date, ROUND(COUNT(b.user_id) * 1.0/COUNT(a.user_id), 3) AS pFROM ( SELECT user_id, MIN(date) AS date FROM login GROUP BY user_id) aLEFT JOIN login bON a.user_id = b.user_idAND b.date = DATE_ADD(a.date,INTERVAL 1 D...原创 2022-05-21 22:37:13 · 220 阅读 · 0 评论 -
superset使用map地图时出现不显示数据的问题
superset作为一款基于web的免费开源的BI工具,具有强大的可视化数据功能。使用它可以极大的减少了我们进行数据可视化的工作难度。但是最近学习使用时,发现一个不明问题。在绘制地图时,发现数据以ISO_CODE时发现只显示台湾、香港、澳门地区的数据,而改变使用ISO_CODE_3166_2时其他省份都显示,但是又不显示它三个了。这是个什么鬼情况???因为改变了地区编码方式出现了不同数据情况,那么很显然时编码问题。搜索得到可以查看superset的map地区编码文件你的superset安装目录原创 2022-05-03 18:56:02 · 2180 阅读 · 0 评论 -
spark on yarn提交集群任务出错记录
最近在spark on yarn模式下提交依赖集群运行的打包程序时总是无法运行。最终发现了自己的一些问题所在记录一下。首先,由于之前配置hive on spark模式,在系统环境变量上配置过一个spark_home。结果让我无语的是我没使用这个环境变量配置目录下的spark,因为为了锻炼多种模式搭建spark,所以单独搭建了一个spark on yarn的模式,这个目录和环境变量上的是不同的,就导致一直报错寻找不到hadoop_conf_dir,因为环境变量下的spark没有配置相关的支持yarn的信息原创 2022-05-03 18:10:59 · 429 阅读 · 0 评论 -
时间维度表数据制作(调用API接口)
学习电商数仓搭建时,遇到创建DIM层的时间维度表。这里时间维度表数据是十分固定的(一年一更新),要将这些数据提出出来生成文件以便导入DIM层的时间维度表中。我们可以调用网络上免费的节假日API来实现对数据的整合和统计。具体代码如下:这里建议使用第二种getDate2的API,注意使用第二种时需要你自己去申请app_id和app_secret去替换package com.time;import com.alibaba.fastjson.JSONArray;import com.alib原创 2022-04-20 16:59:13 · 1008 阅读 · 0 评论 -
练题010
这题的难点在于思考不到如何解决计算方法数,联系不到斐波那契数列,想不到使用动态规划。主要就在于思路:从后往前看,到达最后一个台阶n有两种方法1、2,如果走1那么前面就有n-1个台阶有f(n-1)个方法,如果走2那么前面就有n-2个台阶就有f(n-2)个方法。那么依次前推就推出了斐波那契数列,f(n) = f(n-1)+f(n-2)。解决斐波那契数列就使用动态规划。代码:class Solution { public int numWays(int n) { // 0..原创 2022-04-18 19:36:31 · 153 阅读 · 0 评论 -
练题009
直接简单粗暴的思路,双重for循环遍历查找。解答前可以单独对特殊情况进行处理,nul、空代码:class Solution { public boolean findNumberIn2DArray(int[][] matrix, int target) { if (matrix == null || matrix.length == 0 || matrix[0].length == 0) { return false; }..原创 2022-04-16 16:51:06 · 199 阅读 · 0 评论 -
练题008
重复就考虑使用去重的容器,set和map,但是set不能得到具体是哪个重复值,所以使用map的key不重复的特性代码:class Solution { public int search(int[] nums, int target) { Map<Integer,Integer> n = new HashMap<>(); for (int i = 0; i < nums.length; i++){原创 2022-04-14 15:01:12 · 113 阅读 · 0 评论 -
练题007
重复的数字,第一反应就是去寻找去重的java容器,这就会考虑到set和map,set直接去重我们时无法得知的,所有这里使用map较好,map的key不能相同。代码:class Solution { public int findRepeatNumber(int[] nums) { Map<Integer,Integer> n = new HashMap<>(); for (int i = 0; i < nums.leng...原创 2022-04-14 14:47:17 · 249 阅读 · 0 评论 -
练题006
不想复杂,那就是直接遍历进行修改。需要考虑的是使用字符数组存储还是通过StringBuilder可变字符串来存储新的字符串。使用字符数组的话,则需要考虑字符数组的初始化长度,空格改为%20由一变三,最坏的情况就是全部需要变,那么就初始化长度为原字符串的3倍长度,这很明显会大量耗损空间内存。代码:class Solution { public String replaceSpace(String s) { char[] c = new char[s.length(..原创 2022-04-13 10:29:32 · 120 阅读 · 0 评论 -
SparkSQL实现对mysql数据库的对接
object JDBC { def main(args: Array[String]): Unit = { val sparkSession: SparkSession = SparkSession.builder().config(new SparkConf().setMaster("local[*]").setAppName("mysql-jdbc")).getOrCreate() // 通用的load读取 sparkSession.rea.原创 2022-04-12 19:39:10 · 1169 阅读 · 0 评论 -
面试题(1~30)
1、HashMap 和 Hashtable 区别2、Java 垃圾回收机制和生命周期3、怎么解决 Kafka 数据丢失的问题4、zookeeper 是如何保证数据一致性的5、hadoop 和 spark 在处理数据时,处理出现内存溢出的方法有哪些?6、java 实现快速排序7、设计微信群发红包数据库表结构(包含表名称、字段名称、类型)8、如何选型:业务场景、性能要求、维护和扩展性、成本、开源活跃度9、Spark如何调优10、Flink和spark的通信框架有什么异同11、Java的代理原创 2022-04-12 10:04:43 · 261 阅读 · 0 评论 -
面试题(101~130)
101、Spark:原理、部署、优化102、Kafka:读写原理、使用、优化103、hive的外部表104、spark的函数式编程105、线性数据结构和数据结构106、Spark映射,RDD107、java的内存溢出和内存泄漏108、多线程的实现方法109、HashMap、ConcurrentMap和 Hashtable 区别110、Flink Checkpoint 是怎么做的,作用到算子还是chain111、Checkpoint失败了的监控11...原创 2022-04-12 10:00:44 · 99 阅读 · 0 评论 -
面试题(31~100)
31、phoenix 创建索引的方式及区别32、Flink TaskManager 和 Job Manager 通信33、Flink 双流 join方式34、Flink state 管理和 checkpoint 的流程35、Flink 分层架构36、Flink 窗口37、Flink watermark 如何处理乱序数据38、Flink time39、Flink支持exactly-once 的 sink 和 source40、Flink 提交作业的流程...原创 2022-04-12 09:59:54 · 256 阅读 · 0 评论 -
面试题(1~30)
1、HashMap 和 Hashtable 区别2、Java 垃圾回收机制和生命周期3、怎么解决 Kafka 数据丢失的问题4、zookeeper 是如何保证数据一致性的5、hadoop 和 spark 在处理数据时,处理出现内存溢出的方法有哪些?6、java 实现快速排序7、设计微信群发红包数据库表结构(包含表名称、字段名称、类型)8、如何选型:业务场景、性能要求、维护和扩展性、成本、开源活跃度9、Spark如何调优10、Flink和spark的通信框架...原创 2022-04-12 09:58:41 · 115 阅读 · 0 评论 -
练题005
涉及链表节点就很抽象,我们可以画图形象化链表这是初始链表,实现反转的话其实就是将连接节点的next属性指向反转即可如何实现:我们可以使用两个辅助节点prev和curr初始化时prev指向null,curr指向头结点,开始通过这两个节点进行改变next使curr.next = prev这这就实现了next指向的反转,然后将curr和prev向后推,但是这里有一个重要点,当我们改变curr的next时curr和它原先的next关系已经断了,那么无法实现后退,所以要提前将curr的...原创 2022-04-12 09:53:45 · 247 阅读 · 0 评论 -
练题004
这题较为清晰,倒序问题我们可以考虑到stack栈数据结构的特点,stack的压栈和弹栈可以实现对数据的反转,因此十分明确了解决思路代码:/** * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public int[] reversePrint(ListNode head) { ..原创 2022-04-12 09:20:55 · 100 阅读 · 0 评论 -
练题003
这个题目思路较为明确,可以通过一个链表来实现。push就是链表添加addpop就使用链表删除remove(list.size() - 1)top就使链表查询get(list.size() - 1)min就将链表进行排序,然后取得最小值代码如下class MinStack { List<Integer> list; // int index = 0; public MinStack() { list = new ArrayL..原创 2022-04-11 20:15:09 · 243 阅读 · 0 评论 -
练题002
斐波那契数列数学化就是f(n) = f(n-1) + f(n-2)(n = 0是f(n)=0;n = 1时f(n)=1)使用动态规划是最好的方法,循环的同时实时的变动f(n-1) 和 f(n-2)来实现最后需要求得f(n)class Solution { public int fib(int n) { // 首先对初始化的数据直接输出 if (n < 2) return n; // 定义动态变化的变量 int l..原创 2022-04-11 17:30:18 · 704 阅读 · 0 评论 -
练题001
两个栈实现队列。分析:队列是先进先出,栈是先进后出。先无论怎样实现都需要将数据先存储起来,所以对一个栈进行压栈出栈或者说出队列的实现,先进先出就必须将栈存储的数据倒过来才能通过栈实现,那么很明显要将stack1的数据弹栈到stack2中实现数据倒置倒置弹栈很容易就是实现了数据的先进先出,但是我们需要考虑到数据事先存不存在以及两个栈空栈情况。1)stack1空栈,stack2空栈 ,那么说明没有数据,队列没有数据。可返回-12)stack1有数据,stack2空栈(要么之前的...原创 2022-04-11 16:34:42 · 224 阅读 · 0 评论 -
SparkSQL自定义UDF函数实现对日志文件的修改
日志文件数据格式:这里我们发现每条信息都有“”冒号的包裹,不利于我们分析,所以我们要对其进行简单的清洗去除冒号UDF函数是对数据进行一进一出的操作,所以自定义UDF函数来实现代码:object Test02 { def main(args: Array[String]): Unit = { // spark配置文件 val sparkConf: SparkConf = new SparkConf().setMaster("local[*]")原创 2022-04-10 21:25:05 · 397 阅读 · 0 评论 -
解决idea运行时控制台打印日志问题(spark运行时)
今天创建一个sparkSQL工程,运行第一个sparkSQL程序控制台打印了许多冗余的info级别的日志信息解决方案:在工程项目的资源resources目录下配置一下log4j日志配置文件log4j.rootCategory=ERROR, consolelog4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.target=System.errlog4j.appender.console.原创 2022-04-10 11:28:37 · 2609 阅读 · 0 评论 -
spark学习笔记2
RDD的持久化其实就是对RDD的数据进行缓存处理,为什么用到缓存?在RDD得到执行过程中不会保存数据,只会保存血缘关系(依赖关系),那么如果一个RDD被多个RDD依赖就会出现,一个依赖之后数据就没了,另一个还需根据血缘关系去找到最初数据重新走一遍这是非常效率低下的。所以引出了缓存来解决。1)RDD cache缓存RDD通过Cache 或者 Persist 方法将前面的计算结果缓存,默认情况下会把数据以缓存在 JVM的堆内存中。但是并不是这两个方法被调用时立即缓存,而是触发后面...原创 2022-04-09 21:48:15 · 457 阅读 · 0 评论 -
spark实现对相同字母组成的单词汇总
前篇使用过spark实现MapReduce实现对相同字母组成的单词汇总但是涉及到了groupByKey算子,存在shuffle过程,效率有提高空间,就考虑使用累加器这个分布式共享只写变量数据结构来避免shuffle进而提高效率代码如下object WordCollect1 { def main(args: Array[String]): Unit = { val sc = new SparkContext(new SparkConf().setMaster("loc.原创 2022-04-09 21:36:43 · 448 阅读 · 0 评论 -
spark案例:Top10 热门品类中每个品类的 Top10 活跃 Session 统计
接上一篇spark案例:Top10 热门品类分析:top10热门已获取,就可以通过品类ID和sessionID来汇总一种品类商品同一session的操作次数,再对品类分区排序思路想好直接上代码:// 获取到top10的品类ID val cid: List[String] = values.map(_.cid) // 过滤数据(只留下top10) val filterRDD: RDD[String] = rdd.filter(原创 2022-04-09 21:02:21 · 1601 阅读 · 0 评论 -
spark案例:Top10 热门品类
数据格式:数据文件中每行数据采用下划线分隔数据每一行数据表示用户的一次行为,这个行为只能是 4 种行为的一种如果搜索关键字为 null,表示数据不是搜索数据如果点击的品类 ID 和产品 ID 为-1,表示数据不是点击数据针对于下单行为,一次可以下单多个商品,所以品类 ID 和产品 ID 可以是多个,id 之 间采用逗号分隔,如果本次不是下单行为,则数据采用 null 表示支付行为和下单行为类似需求:按照每个品类的点击、下单、支付的量来统计热门品类(先按照点击数排名,靠前的就.原创 2022-04-09 20:31:37 · 2884 阅读 · 1 评论 -
mysql实现批量修改一个字段数据
如果需要批量修改某一字段的一个值可以使用(1)update 表名 set 字段名=replace(字段名,原值,新值);(2)update 表名 set 字段名=新值 where 条件(字段名=原值);(3)update 表名 set 字段名=新值 where 条件(字段名 is not null);...原创 2022-04-06 20:49:24 · 11988 阅读 · 0 评论 -
kafka学习
kafka的单机(单节点)安装下载kafka Apache Kafka解压tar -zxvf kafka_2.12-3.0.0.tar.gz -C 指定位置切换到kafka目录下的config配置文件目录修改 server.properties文件配置broker.id // 这个在集群中是唯一存在的标识,单节点不需要改,但是集群搭建时需要改log.dirs=指定目录 // kafka运行日志(数据)存放的路径,路径不需要提前创建,kafka自动帮你创建,可以 配置...原创 2022-03-31 11:13:43 · 1552 阅读 · 0 评论
分享