- 博客(35)
- 资源 (2)
- 收藏
- 关注
原创 spark关于hdfs上配置文件的高可用访问配置
背景:java项目中存在excel这样的资源文件,处理方法是将excel通过hadoop fs -copyFromLocal方式上传到hdfs文件系统上。hdfs有两个namenode,所以访问路径需要设置成高可用的路径处理代码:声明spark环境 val sparkConf = new SparkConf() .setAppName("FieldRelativeApplication") .set("spark.serializer", "org.apa
2020-10-22 15:13:15
1755
原创 spark读取excel成dataframe的几种方式
目前只用到两种方法一data.xlsx放在resource目录下相关依赖<dependency> <groupId>com.crealytics</groupId> <artifactId>spark-excel_2.11</artifactId> <version>0.10.2</version></dependency>主要代码val sparkConf = n.
2020-10-16 11:01:04
3453
1
原创 docker容器的权限问题引发的解决办法
背景因为采用的Linux上的docker容器部署项目,而项目中需要访问Windows共享文件夹的内容,几经搜索资料,需要用到docker容器内部的挂载命令 mount但它会出现 权限不足的问题,这里就需要将docker容器配成root权限才行方法有两种方法1、删除原来的容器,在原来的镜像上执行docker run命令并附加--Privileged=true ,新建一个容器,此时容器就有了权限,但是如果原来的容器不能被删除,即原来的容器在原来的镜像中更改了很多东西的情况下这种方法就不好使了
2020-09-20 12:30:15
4819
1
原创 spark(scala)中对mongodb以及excel的处理和小问题的解决(比如select传入可变参数问题解决)
背景:采用spark读取mongodb和Excel的数据,由于mongodb是bson类型的数据,需要的字段名比较少且按照层级选取,想到的办法是先把数据全部读成df,然后通过select操作查找需要的字段出现的问题是:因为将生成特定字段的df封装成函数,而函数本身是需要传入字段名列表(Seq类型)的,而select操作通过看源码接收的参数类型是col : scala.Predef.String, cols : scala.Predef.String*类型的,所以需要处理相关函数
2020-09-20 11:02:06
476
原创 用python实现单例模式的几种方法
1、使用类的__new__方法# 使用__new__方法,python自省class Singleton(object): def __new__(cls, *args, **kwargs): # 如果没有隐变量_instance就调用__new__一个,python自省 if not hasattr(cls, "_instance"): orig = super(Singleton, cls) cls._ins
2020-08-11 13:43:25
288
原创 优化算法中动量法的理解
动量法梯度下降存在问题,因为是对整个梯度用学习率做的衰减和增强,所以所有的梯度分量都享受同一个权重学习率,容易造成有些分量衰减的过于缓慢,有些分量震荡的剧烈到最后发散的可能动量法在一定程度上能解决梯度下降的问题,如果考虑历史梯度,将会引导参数朝着最优值更快收敛,这就是动量算法的基本思想vt=γvt−1+ηtgtv_t = \gamma v_{t-1} + \eta_t g_tvt=γvt−1+ηtgtxt=xt−1−vtx_t = x_{t-1} - v_txt=xt−1−vt由
2020-08-11 10:06:05
963
原创 azkaban编译安装采坑记录
1、下载相应的azkaban的Linux版本的压缩包# 下载wget https://github.com/azkaban/azkaban/archive/3.70.0.tar.gz# 解压tar -zxvf azkaban-3.70.0.tar.gzgithub如果过慢的话可以同步到码云仓库,直接下载2、需提前下载好gradle打包工具,不然安装时gradle-wrapper.properties里面的连接下载非常慢wget https://services.gradle.org
2020-08-07 11:53:30
2853
原创 java动态原生配置数据库参数执行sql
主要步骤1、maven依赖、实体类 略2、在resource目录下新建jdbc.properties# 也可以是oracle、sqlserver、hive等数据库的驱动类jdbc.driver=com.mysql.jdbc.Driverjdbc.datasource.size=10jdbc.url=jdbc:mysql://localhost:3306/databasejdbc.user=rootjdbc.password=1234563、新建config类,用于管理驱动配置impo
2020-07-28 21:49:44
994
原创 Resnet网络回归的简单实现
注:参考《动手学深度学习》一书构建的网络模型是ResNet-18,即4个残差块,每块里面有四层卷积(不包括用以改变通道数的1×1卷积层),以及最开始的卷积层和最后的全连接层,总共18层数据集类型为简单的array或pd.DataFrame类型的二维表或二维矩阵1、加载测试数据1.1、构建训练数据的X-y的Dataset类,用以后续的批处理和shuffleclass AnalysisDataset(Dataset): def __init__(self, in_data, col
2020-07-16 15:58:01
15616
32
原创 mysql字段数据注释的迁移-- 使用python
背景:由于python中的to_sql语句创建的数据库表没有字段注释,而字段又比较多,返回给前端的字段名是英文,考虑在不创建映射文件的情况下,为MySQL每个字段添加注释准备:已经有包含所有字段注释的SQL表,待插入注释的表与原表大部分字段名一致,字段类型一致尝试:因为所有的字段都可以通过information_schema.columns来查看,所以考虑使用以下sqlupdate information_schema.columns as cc LEFT JOIN (SELECT col
2020-07-06 15:51:03
414
原创 秒杀系统的基本功能实现
秒杀目录需求设计待解决的问题解决办法代码redis配置类redis多线程类(核心)主函数需求设计商品种类数确定,每种商品的库存数确定顾客上万需要输出秒杀成功的客户信息待解决的问题模拟上万的买家设置秒杀的开始,结束时间节点保证商品的原子性保证商品卖出量小于等于库存量解决办法线程池线程沉睡采用Redis监听和事务处理多次获取商品的数量与原始数量对比代码redis配置类public class RedisUtil{ // slf4j日志 protected st
2020-06-28 15:13:23
571
原创 bp神经网络的python实现
bp神经网络的python实现导入所需要的包import numpy as npimport matplotlib.pyplot as plt激活函数(选用sigmoid函数)def sigmoid(x): return 1 / (1 + np.exp(-x))连接层类(包含初始化,前向传播,误差反馈等过程)class Layer(object): def __init__(self, units, activation = None, learning_
2020-06-24 14:34:49
1079
原创 springboot整合websocket
目录核心配置类简单使用测试maven依赖,包括mybatis,springboot,大数据连接,MySQL依赖,druid等 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency&
2020-06-13 09:19:38
192
原创 springboot整合mybatis采用druid连接池对mysql,hive双数据源整合并打包
目录准备application.yml公共配置文件准备maven依赖,包括mybatis,springboot,大数据连接,MySQL依赖,druid等<!---配置CDH仓库地址--><repositories> <repository> <id>cloudera</id> <url>https://repository.cloudera.com/artifact
2020-06-12 10:44:11
4659
4
原创 生产者消费者问题(管程实现)
// 管程实现生产者与消费者#define N 50// 定义管程class Monitor{ // 定义含N个数据的环形缓冲区 int buffer[N]; // in表示环形队列队尾指针,out表示环形队列队头指针 int in, out; // notfull表示队列未满的信号量,notempty表示队列非空的信号量 semaphore notfull; semaphore notempty; // 缓冲区中数据个数 int count; // 生产者放入数据.
2020-06-10 20:59:53
660
原创 理发师问题
理发师问题是一个比较经典的同步问题类似一个生产者多个消费者总共有沙发(沙发数),理发椅(只有一个,互斥其他顾客)和付费(用于顾客与理发师同步)三种临界区操作代码如下// 沙发个数#define N 5// 顾客等待时所坐的沙发数int count = 0;// 互斥访问countsemaphore mutex = 1;// 理发椅是否为空semaphore empty = 1;// 表示理发椅上是否有顾客semaphore full = 0;// 等待顾客付费sem
2020-06-10 20:35:54
2761
原创 读者写者问题三种情况详细解释(通俗易懂)
说明P=wait 申请临界区资源V=signal 释放释放临界区资源读者优先问题:// 读者优先问题// 即只要一个读者在读,后续的其他读者无论是否在写者后面都可以读// 写者必须等待,必须等所有读者都读完才能写入// 互斥读者与读者semaphore rmutex = 1;// 互斥读者与写者,写者与写者semaphore mutex = 1;// 表示读者数量,需看成临界资源,即进来一个读者就+1操作int readcount = 0;// 读者进程void .
2020-06-09 22:55:54
7488
3
原创 二叉树树的四种遍历方式的非递归算法
先序遍历#include <stdio.h>#define MAX 100typedef struct Node{ int data; struct Node * lchild; struct Node * rchild;}BTNode;// 先序遍历非递归算法void preorder(BTNode * b){ // 创建指针数组栈 BTNode * st[MAX]; // 工作指针 BTNode * p; // 栈顶 int top = -1;
2020-06-09 22:12:49
266
原创 kmp算法
数据结构-字符串匹配算法(kmp算法基于next数组)#include<stdio.h>#define MAX 100// kmp算法// s为文本串指针,t为模式串指针int kmp(char * s, char * t){ int i = 1, j = 1; // next数组,之和模式串有关 int next[MAX]; // 根据模式串生成next数组,即保留最近一次可以回退的位置 getNext(t, next); while(i < strlen(
2020-06-09 21:37:28
167
原创 头插法和尾插法
数组创建单链表的两种方法#include<stdio.h>#include<malloc.h>typedef struct LNode{ // 假设是整型 int data; struct LNode * next;}Linklist;// 头插法创建链表,时间复杂度O(n)// L为头指针,a[]为待转变成链表的数组void createListHead(Linklist * L, int a[], int n){ // 用于生成新节点; Lin
2020-06-09 21:34:19
1884
原创 哈夫曼树的构造
#define MaxSize 1000#define INT_MAX 0x7ffffffftypedef struct { // 节点权值 int weight; // 节点双亲 int parent; // 节点左孩子 int lchild; // 节点右孩子 int rchild;}HNodeType;// 构造霍夫曼树HNodeType * huffmanTree(){ // 定义哈夫曼节点 HNodeType HuffNode[MaxSize]; i...
2020-06-07 22:45:46
244
原创 拓扑排序(容易理解版)
当顶点结构体中的成员变量count存放顶点的出度值时,为逆拓扑排序,为无环时的深度优先遍历时间复杂度O(n+e)#define MaxSize 1000 // 边节点typedef struct ANode{ // 边所指的终点顶点 int adjvex; // 边的终端节点,邻域,指向下一个邻接点 struct ANode * nextarc; // 权值 int weight;}ArcNode; // 顶点typedef struct Vnode{ // 数据域
2020-06-07 22:23:26
376
原创 Floyd算法
Floyd算法 时间复杂度O(n3)#define MaxSize 1000#define INT_MAX 0x7ffffffftypedef struct{ // 邻接矩阵 int edges[MaxSize][MaxSize]; // 图中顶点个数 int n;}Graph;// Floyd算法void Floyd(Graph g){ // 距离矩阵和路径矩阵 int dist[MaxSize][MaxSize]; int path[MaxSize][MaxSize
2020-06-07 22:05:37
140
原创 Dijkstra算法
Dijkstra算法#define MaxSize 1000#define INT_MAX 0x7ffffffftypedef struct{ // 邻接矩阵 int edges[MaxSize][MaxSize]; // 图中顶点个数 int n;}Graph;// 求所有顶点到顶点v的最短路径void Dijkstra(Graph g, int v){ // 距离矩阵 int dist[MaxSize]; // 路径矩阵 int path[MaxSize]; /
2020-06-07 21:55:09
198
原创 kruskal算法,简单易懂
kruskal算法,基于并查集的实现#define MaxSize 1000typedef struct{ // 边的起点和终点序号 int front, to; // 权值 int weight;}EdgeType;// 边图结构体类typedef struct{ // 顶点集 int vertex[MaxSize]; // 边集 EdgeType edge[MaxSize] // 顶点个数 int vertexnum; // 边个数 int edgenum;
2020-06-07 21:38:39
379
原创 prim最小生成树 C++实现
prim最小生成树#define MaxSize 1000#define INT_MAX 0x7ffffffftypedef struct{ // 邻接矩阵 int edges[MaxSize][MaxSize]; // 图中顶点个数 int n;}Graph;// 时间复杂度为O(n2),与图的边数无关,适合稠密图void prim(Graph g, int v){ // 存储出发顶点到其他顶点的权值 int lowcost[MaxSize]; // 中间变量,用于
2020-06-07 21:21:39
162
原创 图的深度优先遍历的递归和非递归算法 C++实现
#define MaxSize 1000 // 边节点typedef struct ANode{ // 边所指的终点顶点 int adjvex; // 边的终端节点,邻域,指向下一个邻接点 struct ANode * nextarc; // 权值 int weight;}ArcNode; // 顶点typedef struct Vnode{ // 数据域 int data; // 指向的第一条边 ArcNode * firstarc;}VNode; // 邻.
2020-06-07 21:00:34
1629
3
原创 BFS 基于C++的实现
图的广度优先遍历算法#define MaxSize 1000// 边节点typedef struct ANode{ // 边所指的终点顶点 int adjvex; // 下一条边,邻域,指向下一个邻接点 struct ANode * nextarc; // 权值 int weight;}ArcNode;// 顶点typedef struct Vnode{ // 数据域 int data; // 指向的第一条边 ArcNode * firstarc;}VNode
2020-06-07 20:38:34
951
原创 递归和回溯两种方法解决全排列问题
public List<List<Integer>> permute(int[] nums) { return permuteMain(nums, nums.length); } // 采用递归,自顶而下 private List<List<Integer>> permuteMain(int[] nums, int len) { if(len == 0){ return...
2020-05-25 20:47:52
160
原创 不带头结点的单链表逆置问题
经常能被单链表逆置给绕进去,此时把个人解释和代码放出,方便记忆 /** * 反转链表 * 迭代实现 * @param p * @return */ private ListNode reverseListByIter(ListNode p){ if(p == null || p.next == null){ return p; } // work为工作指针,跟随p的变
2020-05-25 20:15:28
2615
原创 python多进程问题的思考
def fun(produceQueue, key, consumerQueue): if not produceQueue.empty(): args = produceQueue.get() else: raise Exception("produce queue is empty!") ...
2020-03-22 18:41:47
443
原创 pycharm调试出现的bug
工作用到Python来写进行从mongodb向mysql迁移的代码,由于业务字段极其复杂,所以需要用到调试但是调试出了一个一直没有预料到的bug:Exception ignored in: '_pydevd_frame_eval.pydevd_frame_evaluator_win32_36_64.get_bytecode_while_frame_eval'SystemError: e...
2019-12-19 16:54:07
1869
1
原创 centos上MongoDB采坑记录及解决
工作中需要用到MongoDB这种nosql,因为第一次接触,部署和启动踩了不少坑,记录一下安装MongoDB4.2:分离线和在线的两种:在线:参考这个大佬的https://www.cnblogs.com/SnowBaby/p/11569541.html离线:下载离线包链接:https://pan.baidu.com/s/1Mk0TpNfn4BnMQchdfBk27w提...
2019-12-03 14:35:22
1185
原创 mysql5.7.27 离线安装部署到centos服务器上
需要准备的环境:centos7.5安装包mysql-5.7.27-linux-glibc2.12-x86_64.tar.gzmysql资源链接:https://pan.baidu.com/s/121kXC2s6YX_Uigmg3R_ngA提取码:ypqp首先先把centos系统内置的mariadb依赖和安装包删除rpm -qa | grep mysql rpm -qa...
2019-11-30 13:06:17
389
原创 内网离线安装docker出现的问题及解决:
工作用到docker,而且需要内网离线安装,因为过程及其坎坷,特此记录先使用xftp工具传输docker-ce及相关依赖的rpm包(最好安装在/usr/local/docker下面):cd进去查看之后在/etc/yum.repos.d文件下把所有的.repo文件打包到bak文件夹下。否则之后yum makecache会报错,再新建docker-ce.repo文件应该是...
2019-11-26 12:59:46
1478
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人