自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (2)
  • 收藏
  • 关注

原创 spark 数据倾斜优化总结

spark数据倾斜优化方法总结

2023-09-17 23:15:16 422 1

原创 禁用Win10自动更新

第三步,双击Windows更新,然后在设置中双击 指定 intranet Microsoft 更新服务位置。第一步,win+r,输入 gpedit.msc 并回车,打开【组策略】第二步,依次点击 管理模板->Windows组件->Windows更新。第四步,点击 已启用,将下面的服务地址全部改成 127.0.0.1 ,第五步,点击确定,重启电脑,以后就不会再更新了。如果哪天又想更新了,再改成禁用就行。

2023-09-16 15:08:40 182

原创 hive解析json数组

作为匹配替换的符号,是因为表中,这个json字符串不会出现这个字符。test_table 表中 json_str 字符串格式如下。的作用是转义数组中,json对象间连接的。的作用是匹配去除左右中括号。将各个json对象分开,上面SQL中,最内层。

2023-03-19 00:57:04 428 1

原创 spark UDF传参使用map

spark UDF使用map作为形参,需要继承 GenericUDF。

2023-03-19 00:29:06 259

原创 mac删除core文件并关闭core文件以节约磁盘

mac中,应用程序崩溃会生成core文件。core文件会占用大量的磁盘空间,没有特殊需求建议关了这个功能,并且将这些core文件删除。unlimited 也可以换成一个具体的数值,表示生成core的大小。将这些文件放到回收站删除即可。关闭core文件生成的命令。如果以后有需要,可以使用。

2023-03-19 00:03:28 1782

原创 常用正则表达式总结

【代码】常用正则表达式总结。

2023-03-18 13:50:23 102

原创 windows安装spark3.2,并使用pycharm测试

windows安装spark3.2,并使用pycharm测试

2022-10-07 22:22:02 1654

原创 docker安装spark3

docker安装spark3

2022-08-21 18:51:19 1025

原创 Windows安装docker

windows安装docker

2022-08-21 17:37:10 4615

原创 使用endnote在毕业论文中插入文献

endnote下载地址 文献管理软件 EndNote X9.3.3 中科大批量授权版(中文一键直装)GBT7714格式下载地址 Chinese Standard GBT7714 (numeric)第一步:下载endnote,中科大批量授权版可以直接安装不需要破解。全部按默认选项安装,安装完成后,word或wps的工具栏会有 endnote选项第二步:下载需要的格式文件。毕业论文一般使用GBT7714格式,在endnote官网即可下载 Chinese Standard GBT7714 (numeri

2022-05-14 22:24:31 10601 2

原创 vue在哪个生命周期可以获取和操作DOM

vue从mounted钩子函数开始可以获取和操作dom,此前操作DOM浏览器会报错。vue生命周期Vue 实例测试代码如下。在每个钩子函数中添加相应的DOM,测试能否获取及修改DOM。<template> <div id="body"> <input v-model="test" /> </div></template><script>export default { data() { retu

2021-09-23 23:55:07 9070

原创 360二面面经总结

出现次数题目答案1vuex的使用Vuex 开始2登录时怎么做的token1组件封装组件基础1加载长列表优化vue长列表优化1实现文件上传项目里做过,el-upload。如果问原生form表单怎么做,三个必要前提要知道form表单的普通文本和文件上传1跨域面试官:Vue项目中你是如何解决跨域的呢?1函数式编程和面向对象函数式编程与面向对象的区别?1数组去重JS手写题1替换字符str.replace(old...

2021-09-15 00:25:24 406

原创 快手前端面经总结

js出现次数题目答案2JS的基本数据类型面试官:说说JavaScript中的数据类型?存储上的差别?1深拷贝面试官:深拷贝浅拷贝的区别?如何实现一个深拷贝?1ES6语法const,let,箭头函数,Promise , Generator函数 ,解构赋值 ,模板字符串 、Proxy1箭头函数和function区别面试官:函数新增了哪些扩展?1weekMap和Map的区别,weekMap应用场景在什么地方,使用过吗面试官:你是怎么理解ES6新增

2021-09-11 23:42:03 1553 2

原创 美团前端面试整理

js和ts出现次数题目答案1JS的基本数据类型有哪些1var和let的区别1typescript中对抽象类和interface的理解1什么时候使用type 什么时候使用interface1ts中的可选和必选1ts如何对早期库比如jquery如何补充类型1动态runtime注入的类型怎样做才能静态不报错1ES5和ES6的继承1class里面的方法可以枚举吗,有没有原型对象2深拷贝和浅拷贝的区别

2021-09-07 00:28:52 423

转载 JS手写题

文章目录题目(大部分转自第一个参考网站)AJAX事件委托防抖节流数组去重使用Set使用filterreduceObject 键值对数组扁平化call和applybind深拷贝Object.create手写继承寄生组合式(常用)Class实现Promise源码Promise.all 及 race参考网站题目(大部分转自第一个参考网站)AJAXvar request = new XMLHttpRequest() request.open('GET', 'index/a/b/c?name=TianTian

2021-09-03 00:53:03 312

原创 基础排序算法总结

文章目录重点排序时间复杂度各类排序算法插入排序shell 排序直接选择排序堆排序冒泡排序快速排序归并排序基数排序重点面试掌握冒泡排序、快速排序、堆排序、归并排序的代码实现与平均时间复杂度即可。shell排序是直接插入的优化,堆排序是直接选择的优化,快速排序是冒泡排序的优化。排序时间复杂度参考网站 https://zhuanlan.zhihu.com/p/34982598类别排序方法平均时间复杂度最好时间复杂度最坏时间复杂度空间复杂度稳定性插入排序直接插入

2021-08-04 01:33:17 141 1

原创 linux make 报错 cc: not found

报错信息如图所示,这个报错原因是没有安装gcc使用sudo apt-get install build-essential 安装gcc即可解决

2021-07-27 23:45:27 2639

原创 Linux make 报错 pkg-config:not found

报错如下图所示解决方法安装 pkg-config,即 sudo apt-get install pkg-config

2021-07-27 23:34:48 6146

原创 Linux启动kafka

启动kafka首先启动zookeeper./bin/zkServer.sh start然后启动kafka./bin/kafka-server-start.sh ./config/server.properties

2021-07-20 23:40:26 1696 2

原创 apache-zookeeper-3.6.3-bin/bin/../conf/zoo.cfg: No such file or directory

这个版本zookeeper没有默认带着zoo.cfg,需要自己创建一个。cd conf进入 conf目录下,查看conf目录下有以下文件。configuration.xsl log4j.properties zoo_sample.cfg所以只需要将zoo_sample.cfg复制一份,作为zoo.cfg即可,复制命令为cp zoo_sample.cfg zoo.cfg...

2021-07-20 23:38:45 1468

原创 SPARK UDF 无法使用 context

近期有需求,在 SPARK 的 UDF 中调用 SPARK 环境变量,即 SparkConf 中的信息。通过查找资料,发现spark context 无法序列化,只能在 driver 中读取,不能在运行UDF的worker中获得,因此无法完成。参考网站how-can-use-sqlcontext-in-spark-udfspark-read-doesnt-work-inside-scala-udf-function...

2021-06-24 00:06:43 134

原创 MAVEN 打包无法自动运行 JUNIT5 测试

JUnit4 的maven 依赖为 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </de

2021-04-10 22:34:05 708

原创 spark SQL UDF传参为空处理

在SPARK SQL 中使用UDF处理HIVE源的数据时,发现UDF中处理了null,但是SPARK在执行过程中仍然会报空指针错误。 查阅资料,HIVE底层数据保存的NULL值并不是null,而是 \N。HIVE配置如下ALTER TABLE NAME SET SERDEPROPERTIES('serialization.null.format'='\N');此时,HIVE 中查询字符串为空可以使用语句a IS NULL 或a ='\\N'在JAVA UDF 中,判断传参为空只能通过a

2021-04-10 11:16:51 738

原创 自定义类加载器加载Spring

spring根本不会去管自己被放在哪里,它统统使用TCCL来加载类,而TCCL默认设置为了WebAppClassLoader,也就是说哪个WebApp应用调用了spring,spring就去取该应用自己的WebAppClassLoader来加载bean。这在真正理解线程上下文类加载器(多案例分析)中已有详细描述。因此,为了使spring使用自定义的类加载器进行加载,需要开一个线程,将这个线程的类加载器设置为自定义类加载器。 public String test(){ try{

2021-02-08 23:25:57 1349

原创 Java读取Zip/JAR文件中的内容

在从JAR包中读取指定类的字节码中,使用JarFile读取Jar包,有的XML文件无法被读取到。因此,使用读取Zip的方式读取XML文件。 public int readZipFile(String zipFilePath, String sourcePath, String targetPath) { try { int byte_sum = 0; int byte_read = 0; byte[] buffe

2021-02-08 22:53:13 454 1

原创 从JAR包中读取指定类的字节码

private byte[] getClassData(String name) { try { name = name.replace('.', '/'); name = name + ".class"; System.out.println("类路径为: " + name); byte[] buffer = new byte[1024]; ...

2021-02-06 17:51:08 444

原创 JAVA 被执行JAR包下载自身所在JAR

项目中,有时需要JAR包中被执行方法自身下载自己所在的JAR包。示例代码如下 String url_head = "localhost"; //域名 // JAR 包所在路径 String url_path = url_head + this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath(); try { File targe

2021-02-06 17:38:27 90 13

原创 MAVEN shade 插件解决JAR包冲突

在团队间使用 guava 时,经常出现因新旧版本不兼容导致的 NoSuchMethodFound 错误。为了解决这个问题,可以在打包时对它进行 shade 处理,改变包名。maven 对 shade 插件的处理如下,各个字段的含义见代码注释。 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</group

2021-01-23 20:14:21 1873

原创 JAVA 类隔离加载解决JAR包冲突

JAVA通过类加载器名称、包名、类名、方法名唯一确定一个方法,因此JAR包冲突可以通过改变类加载器实现。JAVA8及以下版本破坏双亲委派机制,实现JAVA类隔离加载依赖 loadClass()方法实现。JAVA9开始模块化后,加载器之间的关系不再是双亲委派模型的树状结构,自然可以隔离不同类的加载。建立maven工程,在 com.example 包下有TestA和TestB两个类。TestA调用了TestB中的方法。现希望将TestA与其所有的引用,也就是TestB类使用同一个自定义类加载器加载。代码如下。

2021-01-23 18:15:40 1621

原创 vue 使用 v-model 实现双向绑定

以下为简化代码,突出核心操作。父组件<TestTags name="测试" v-model="text">子组件<script>export default{ model:{ prop:'tags',//与父组件双向绑定 tags event: 'updateTags' }, // 接受父组件传来的值 props:{ tags:Array, }, methods:{

2020-12-27 20:42:21 58

原创 JS 提取字符串中数字

强制类型转换适用于要提取的数字在字符串的前端。let str="2341.2341sadf"console.log(parseInt(str),parseFloat(str)); //输出 2341 2341.2341正则表达式let str="%1234.2134231fsadfasfsaf42314332"let num=str.replace(/[^0-9]/ig,""); // 匹配整数,拼成一个数let numArr=str.match(/\d+/g); // 匹配整数数组le

2020-12-27 20:20:38 298

原创 Flink 迭代流 IterativeStream 使用示例

Flink 迭代流可以用来解决部分数据需要重新计算的场景,包括扫码支付等。import org.apache.flink.api.common.functions.FilterFunction;import org.apache.flink.api.common.functions.FlatMapFunction;import org.apache.flink.api.java.tuple.Tuple2;import org.apache.flink.api.java.utils.Parameter

2020-12-27 19:50:49 982 1

原创 PostConstruct 注解:main 调用 spring 注入 service

实际作用@PostContruct 是spring框架的注解,在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。@PostConstruct 是 Servlet 的注解,可以用来解决 main 方法调用 spring 注入的 service 类问题。实例代码如下:@Autowiredprivate Dao dao;public static void main(String[] args){ SpringApplication.run

2020-12-27 19:48:49 1058

原创 URL ClassLoader 类加载器

URL ClassLoader 是 Java 用来加载远程类的类加载器。在 flink 中,启动时使用 -C 参数可以向集群中所有节点上的每个用户代码类加载器添加一个URL,这依靠的就是 URL ClassLoader 。ClassLoader 只能加载 classpath 下面的类,而 URL ClassLoader 可以加载任意路径下的类。它继承自 SecureClassLoader,SecureClassLoader 继承自 ClassLoader 。URL ClassLoader 可以从下面三个方

2020-12-27 18:38:10 738

原创 Flink 无参和常量参数UDF被优化为常量问题

如下代码所示,flink SQL 版本为1.9。UDFTest是一个UDF函数,它内部有一个定时线程,每秒拉取最新的结果,如服务器时间等。在flink运行过程中,发现时间不会改变。insert into test_tableselect UDFTest('时间测试') as idfrom source_table问题原因是,一些常量表达式,Flink 客户端在初始化的时候,执行了一次并缓存结果。之后每次调用都直接去读取缓存,而不是重新执行函数。像上面代码这样,参数均为常量,或没有参数时,flin

2020-12-27 18:18:50 219

原创 Windows 下 Python 合并 M3U8 视频的ts格式文件

解密部分可见 python 解密 M3U8 AES 加密的视频Windows下合并ts文件可以使用 copy /b 命令,/b的含义是操作二进制文件,一般使用方法为 copy /b 1.ts+2.ts new.ts,将1.ts和2.ts合并为new.ts,注意顺序不能乱。在有大量需要合并的文件时,手写bat文件耗时耗力,所以使用Python脚本,在解密文件的同时生成合并脚本。示例代码如下。from Crypto.Cipher import AESdef decryptSingleAES( src,

2020-09-30 17:36:10 1698

原创 python 解密 M3U8 AES 加密的视频

从浏览器下载的M3U8格式视频有时会被AES加密。windows下解密AES需要安装pycryptodome 模块和pycrypto模块,使用conda或pip安装这两个模块。conda install pycryptodomeconda install pycrypto安装完成后在Python文件中导入AES包,进行解密操作。M3U8一般使用CBC方式加密,key一般会与ts文件在同一目录,记事本打开key文件即可获取。iv需要从M3U8文件中获取。使用记事本打开此文件,如果属性列表出现 IV,则

2020-09-30 17:03:45 7449 8

原创 java面试题整理

一、什么是HashMapHashMap是Map接口的一个实现类,特点如下:无序,允许为null,非同步底层由散列表(哈希表)实现初始容量和装载因子对HashMap影响挺大的装载因子*初始容量小于散列表元素时,该散列表会再散列,扩容2倍!并不是桶子上有8位元素的时候它就能变成红黑树,它得同时满足我们的散列表容量大于64才行的HashMap并不是直接拿key的哈希值来用的,它会将key的哈希值的高16位进行异或操作,使得我们将元素放入哈希表的时候增加了一定的随机性。二、字符串转哈希值publi

2020-05-31 16:52:26 280

原创 Cannot find module @babel/compat-data/corejs3-shipped-proposals

这个问题产生的原因是缺少依赖,打开项目根目录下package.json文件,在"devDependencies"中添加"@babel/compat-data": "~7.9.0"即可。

2020-05-31 14:04:37 4015 2

原创 For MinGW make to work correctly sh.exe must NOT be in your path

CLION在Windows上使用mingw作为编译器时,如果之前配置了git,会报如下图所示错误。解决这个问题可以在cmake上设置参数-DCMAKE_SH="CMAKE_SH-NOTFOUND",如下图这种做法可以编译运行成功,但是IDE上报错信息仍然会在,Toolchains上仍然无法正常显示C/C++编译器版本。因此可以使用visual studio的编译器来运行程序。vs2019社区版已经是免费下载的。clion配置vs2019编译器如图所示。这样,clion就可以正常运行而不会引起其

2020-05-29 00:39:46 2501 5

STM32Cube开发freertos官方中文教程

STM32Cube开发freertos官方中文教程

2016-10-29

STM32CUBE FreeRtos 示例

STM32cube生成的freertos代码的使用示例 并提供cmsis.c这个ST提供的中间层编程接口的注释翻译 本人水平有限 如有错误欢迎讨论

2016-07-25

空空如也

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

TA关注的人

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