- 博客(347)
- 资源 (5)
- 问答 (1)
- 收藏
- 关注

转载 Spark MLlib实现的中文文本分类–Naive Bayes
关键字:spark mllib、文本分类、朴素贝叶斯、naive bayes文本分类是指将一篇文章归到事先定义好的某一类或者某几类,在数据平台的一个典型的应用场景是,通过爬取用户浏览过的页面内容,识别出用户的浏览偏好,从而丰富该用户的画像。本文介绍使用Spark MLlib提供的朴素贝叶斯(Naive Bayes)算法,完成对中文文本的分类过程。主要包括中文分词、文本表示(TF-IDF)、模型训练、分类预测等。中文分词对于中文文本分类而言,需要先对文章进行分词,我使用的是IKAnalyzer中
2021-06-20 18:14:21
837

转载 spark提交任务的三种的方法
spark提交任务的三种的方法在学习Spark过程中,资料中介绍的提交Spark Job的方式主要有三种:1、使用spark 自带的spark-submit工具提交任务通过命令行的方式提交Job,使用spark 自带的spark-submit工具提交,官网和大多数参考资料都是已这种方式提交的,提交命令示例如下:./spark-submit --class com.learn.spark.SimpleApp --master yarn --deploy-mode client --driver-
2021-04-25 14:46:13
6076

转载 彻底搞懂-扔鸡蛋问题-方程-动态规划
题目:2个鸡蛋,从100层楼上往下扔,以此来测试鸡蛋的硬度,比如鸡蛋在第9层没有摔碎而在第10层摔碎了,那么鸡蛋不会摔碎的零界点就是9层,如何用最少的尝试次数,测试出鸡蛋不会摔碎的临界点?最笨法:把其中一个鸡蛋从第1层开始往下扔,如果第1层没碎换到第2层扔,如果第2层没碎换到第3层扔,,,如果第59层没碎换到第60层扔,如果第60层碎了,说明不会摔碎的临界点是59层,最坏情况下需要扔100次二分法:把鸡蛋从50层往下扔,如果第一枚在50层碎了,就从第1层开始(一共只有两个鸡蛋,第一个鸡蛋
2020-06-24 17:53:15
1491
1

转载 布隆过滤器+缓存穿透问题+Counting Bloom Filter,原理+案例+代码实现
概述什么是布隆过滤器布隆过滤器(Bloom Filter)是1970年由布隆提出的,它实际上是由一个很长的二进制向量和一系列随意映射函数组成。它是一种基于概率的数据结构,主要用来判断某个元素是否在集合内,它具有运行速度快(时间效率),占用内存小的优点(空间效率),但是有一定的误识别率和删除困难的问题。它能够告诉你某个元素一定不在集合内或可能在集合内。在计算机科学中,我们常常会碰到时间换空间或者空间换时间的情况,通常两者不可兼得,我们要在两者之间取舍...
2020-06-20 15:35:40
1429

原创 python使用xlwt形成合并单元格的excel并且读取合并单元格的excel
python使用xlwt形成合并单元格的excel并且读取合并单元格的excel 在日常数据报表数据处理中,经常会遇到看某个大类下面每个小类的各自的情况,此时形成的合并一些单元格作为表头的excel。在excel中,手动合并单元格比较容易,但是怎么利用python构造某些列或者行合并作为标题行或列的excel呢?废话不多说,直接上代码。1、安装python处理excel需要的包...
2019-11-12 13:25:26
8228

转载 inotifywait+rsync 实时同步脚本
相同服务器我们时常需要相同的部署,这时就需要我们能够实时的同步文件。今天我就和大家分享一个能够实现自动远程实时同步文件的方法:一、利用inotifywait对文件系统事件实时监控, 触发事件调用rsync远程同步文件至一台或多台服务器 接下来说说我们需要使用到的工具:1、rsync一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓...
2019-07-23 22:03:11
1445

转载 【超级有用】大数据的压缩格式
为什么map端用snappy压缩格式;而reduce用gzip或者bzip2的压缩格式呢?为什么每个reduce端压缩后的数据不要超过一个block的大小呢? 检查Hadoop版本的压缩格式是否可用【我在Hadoop cdh 5.7版本中查看Hadoop压缩格式】$ hadoop version$ hadoop checknative一、在解答上述问题以前,我们先...
2019-07-18 10:30:59
839
1

转载 【python可视化系列】python数据可视化利器--pyecharts
前言echarts是什么?下面是来自官方的介绍: ECharts,缩写来自Enterprise Charts,商业级数据图表,Echarts 是百度开源的一个数据可视化纯Javascript(JS) 库。主要用于数据可视化,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/10/11,chrome,firefox,Safari等),底层依赖轻量级的Canvas类库ZRe...
2018-06-17 17:18:33
15611

原创 Hbase表两种数据备份方法-导入和导出示例
Hbase表数据导入和导出示例场合:由于线上和测试环境是分离的,无法在测试环境访问线上库,所以需要将线上的hbase表导出一部分到测试环境中的hbase表,这就是本文的由来。本文借助hdfs作为中介将线上的hbase数据导出部分到测试hbase表中。闲话少叙,例子就来:1)、创建hbase表emplocalhost:bin a6$ pwd/Users/a6/Applications/hbase-...
2018-05-15 17:39:46
20407
6

转载 前向传播算法(Forward propagation)与反向传播算法(Back propagation)以及sigmoid函数介绍
前向传播算法(Forward propagation)与反向传播算法(Back propagation)以及sigmoid函数介绍虽然学深度学习有一段时间了,但是对于一些算法的具体实现还是模糊不清,用了很久也不是很了解。因此特意先对深度学习中的相关基础概念做一下总结。先看看前向传播算法(Forward propagation)与反向传播算法(Back propagation),sigmoid函数...
2018-04-09 11:42:14
2505

转载 hive 动态分区(Dynamic Partition)异常处理
hive 动态分区(Dynamic Partition)异常处理Changing Hive Dynamic Partition LimitsSymptoms:Hive enforces limits on the number of dynamic partitions that it creates. The default is 100 dynamic partitions per nod...
2018-03-27 11:43:30
4739

原创 mysql出现ERROR : (2006, 'MySQL server has gone away') 原因和解决方案
mysql出现ERROR : (2006, 'MySQL server has gone away') 原因和解决方案这种情况可以通过修改max_allowed_packed的配置参数来避免,也可以在程序中将数据分批插入(使用mysql limit进行分页,循环分批处理数据)
2017-09-27 20:28:45
73724
3

原创 python 使用mysqldb模块通过SSHTunnelForwarder隧道连接mysql
python 使用mysqldb模块通过SSHTunnelForwarder隧道连接mysql出于安全考虑,数据库服务器只允许堡垒机通过ssh访问,这对日常的使用带来了麻烦。昨天的工作中,就遇到了这样的问题,MySQL数据库放在了服务器A上,只允许服务器B来访问,而我在机器C上,可以通过ssh连接服务器B。为了解决在机器C上连接mysql这个问题sshtunnel官方使用例子,请参照例子:
2017-09-05 13:21:34
10783

原创 【python Excel】如何使用python将大量数据导出到Excel中的小技巧之一
如何使用python将大量数据导出到Excel中的小技巧python Excel相关的操作的module lib有两组,一组是xlrd、xlwt、xlutils,另一组是openpyxl,但是前一组(xlrd,xlwt)比较老,只能处理由Excel 97-2003 或者Excel 97 以前版本生成的xls格式的excel文件, xlwt甚至不支持07版以后的excel ,这个格式excel文件一般来说,最大只能支持256列或者65536行的excel文件。因此面对需要导出大量数据到excel的情况,
2017-09-05 12:24:25
59252
转载 shell脚本中用hive -e执行sql出现「cannot recognize input near ‘<EOF>‘ in select clause」问题
1、shell脚本中用hive -e执行sql出现「cannot recognize input near ‘<EOF>‘ in select clause」问题2、解决方案修改hive -e ${sql}为hive -e "${sql}"3、原因分析若没有使用双引号进行包括,则"hive -e"会认为后面的sql内容解析为多个参数造成错误。而使用双引号后,整个sql将作为一个单独的参数传给hive。
2022-11-09 10:22:36
747
原创 python中list 转set和tuple遇到的坑和 python占位符使用
python中list 转set和tuple遇到的坑和 python占位符使用
2022-11-08 17:19:30
472
转载 hive表生成函数explode、stack、lateral view和json_tuple、parse_url_tuple示例
hive表生成函数explode、stack、lateral view和json_tuple、parse_url_tuple示例
2022-11-08 14:23:42
475
转载 hive分箱函数ntile()使用案例
ntile()函数的作用是等频分箱,把观测值进行有序排列(默认升序),根据观测值的总个数等分为k部分,每部分当作一个分箱,即百分位数的概念,可以根据箱号选取前或后n分之几的数据。
2022-11-07 20:39:40
300
转载 linux expect远程自动登录以及执行命令
1、什么是expect?在做系统管理时,我们很多时候需要输入密码,例如:连接 ssh,连接ftp,那么如何能做到不输入密码吗?ssh远程登录一台主机后,会在know_hosts中新增1条记录,下次再登录时就不用输入用户名密码。但是有一个问题,如果我需要在100台新机器上登录,那就需要输入100次用户名密码,这之后才不用输入,这太麻烦了,因此就用到了expect来解决。我们需要有一个工具,能代替我们实现与终端的交互,那么,就是它:expect,管理员的最好的朋友之一,通过expect将代码分发至
2021-12-03 15:42:38
2659
转载 hive 和 spark-sql 如何写SQL求出中位数平均数和众数(count 之外的方法)
1、概念介绍 平均数、中位数、众数都是度量一组数据集中趋势的统计量。所谓集中趋势是指一组数据向某一中心值靠拢的倾向,测度集中趋势就是寻找数据一般水平的代表值或中心值。而这三个特征数又各有特点,能够从不同的角度提供信息。平均数特点:计算用到所有的数据,它能够充分利用数据提供的信息,它具有优秀的数学性质,因此在实际应用中较为广泛。但它受极端值的影响较大。应用场合:没有极端值的情况下数据集中趋势的刻画。如:小明五次测试的成绩为87、88、89、93、94你认为小明这五次测试成绩怎样?...
2021-11-24 10:27:15
4160
1
转载 Spark DataFrame 的窗口函数使用的两种形式介绍
1、概述上文介绍了sparkdataframe常用操作算子。除此外,spark还有一类操作比较特别——窗口函数。窗口函数常多用于sql,spark sql也集成了,同样,spark dataframe也有这种函数,spark sql的窗口函数与spark dataframe的写法不太一样。1.1、spark sql 写法select pcode,event_date,sum(duration) over (partition by pcode order by event_date as.
2021-07-27 13:34:24
2169
转载 shell 数组及其遍历的3种方法
1、shell数组1.1、数组概述数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。与大部分编程语言类似,数组元素的下标由0开始。Shell 数组用括号来表示,元素用”空格”符号分割开,语法格式如下:array_name=(value1 value2 … valuen)例如:my_array=(A B “C” D)我们也可以使用下标来定义数组:array_name[0]=value0array_na
2021-07-15 11:41:07
33037
3
转载 Spark机器学习API之特征处理
关键字:spark、机器学习、特征处理、特征选择Spark机器学习库中包含了两种实现方式,一种是spark.mllib,这种是基础的API,基于RDDs之上构建,另一种是spark.ml,这种是higher-level API,基于DataFrames之上构建,spark.ml使用起来比较方便和灵活。Spark机器学习中关于特征处理的API主要包含三个方面:特征提取、特征转换与特征选择。本文通过例子介绍和学习Spark.ml中提供的关于特征处理API中的特征选择(Feature Selectors)
2021-06-20 20:31:42
281
转载 获取本季度上季度的时间_hive时间函数应用小例
1. 获取当前时间:yyyy-mm-ddSELECT CURRENT_DATE;current_date()2021-06-17Time taken: 0.077 seconds, Fetched 1 row(s)2. 获取当月第一天时间:yyyy-mm-ddselect date_sub(current_date,dayofmonth(current_date)-1);date_sub(current_date(), (dayofmonth(current_date()) - 1
2021-06-17 21:25:14
2125
转载 HiveSQL/SparkSQL的 round() 、floor()和 ceil()的 用法
HiveSQL/SparkSQL的 round() 、floor()和 ceil()的 用法1、概述round四舍五入floor 取左值ceil 取右值2、在SparkSQL中的示例spark版本:spark-2.3.4Hive client (version 1.2.2)spark-sql> select round(1.2356);1Time taken: 0.788 seconds, Fetched 1 row(s)spark-sql> ...
2021-04-30 20:11:29
4669
1
转载 SparkSQL—最大连续登录天数、当前连续登录天数、最大连续未登录天数问题
Hive SQL——最大连续登录天数、当前连续登录天数、最大连续未登录天数问题1、数据准备表字段:用户、新增日期、活跃日期 原数据表:user_active表1.1、测试数据:比较date和timestamp类型CREATE TABLE test_user_active( name string, install_date timestamp, active_date timestamp);insert overwrite table test_user_act.
2021-04-26 13:23:31
1355
转载 linux服务器的物理CPU,CPU核数,逻辑CPU及Hadoop的Vcore
linux服务器的物理CPU,CPU核数,逻辑CPU及Hadoop的Vcore1、Linux服务器的核数的概念物理CPU: 服务器上真实存在的CPU,可以看到CPU的核 (core): 一个CPU上包含多少核(core),真实存在但不能直接看到 总核数 = 物理CPU个数 X 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 在没有开启超线程时,总核数 = 总逻辑CPU个数,如果开启超线程,则总核数 < 总逻辑CPU
2021-04-17 15:28:49
1468
转载 rsync 基本命令和用法
rsync 基本命令和用法以下是rsync系列篇: 1.rsync(一):基本命令和用法 2.rsync(二):inotify+rsync详细说明和sersyncinotify+rsync如果要实现定时同步数据,可以在客户端将rsync加入定时任务,但是定时任务的同步时间粒度并不能达到实时同步的要求。在Linux kernel 2.6.13后提供了inotify文件系统监控机制。通过rsync+inotify组合可以实现实时同步。inotify实现工具有几款:inotify本身、.
2021-04-17 10:39:25
351
转载 [转] rsync 用法教程
rsync 用法教程作者:阮一峰日期:2020年8月26日一、简介rsync 是一个常用的 Linux 应用程序,用于文件同步。它可以在本地计算机与远程计算机之间,或者两个本地目录之间同步文件(但不支持两台远程计算机之间的同步)。它也可以当作文件复制工具,替代cp和mv命令。它名称里面的r指的是 remote,rsync 其实就是"远程同步"(remote sync)的意思。与其他文件传输工具(如 FTP 或 scp)不同,rsync 的最大特点是会检查发送方和接收方已有的文..
2021-04-17 10:15:18
276
转载 如何为Spark应用程序分配--num-executors,--execuor-cores和--executor-memory
如何为Spark应用程序分配--num-executors,--execuor-cores和--executor-memory1、前言在我们提交spark程序时,应该如何为Spark集群配置–num-executors, - executor-memory和–execuor-cores 呢?1.1、一些资源参数设置的基本知识Hadoop / Yarn / OS Deamons 当我们使用像Yarn这样的集群管理器运行spark应用程序时,会有几个守护进程在后台运行,如NameN...
2021-04-16 21:13:32
351
转载 Spark任务的core,executor,memory资源配置方法
Spark任务的core,executor,memory资源配置方法1、概述执行Spark任务,资源分配是很重要的一方面。如果配置不准确,Spark任务将耗费整个集群的机缘导致其他应用程序得不到资源。怎么去配置Spark任务的executors,cores,memory,有如下几个因素需要考虑:数据量 任务完成时间点 静态或者动态的资源分配 上下游应用2、Spark应用当中术语的基本定义:Partitions: 分区是大型分布式数据集的一小部分。 Spark使用分区来管理数据,.
2021-04-16 20:56:00
3625
1
原创 Hive SQL经典使用场景示例
HQL每天购课总额前三的用户原始数据 with tbl_order as ( select '2019-01-01' as dt, 1 as uid, '数学' as course_id, 50 as price union all select '2019-01-01' as dt, 2 as uid, '数学' as course_id, 50 as price union all select '2...
2021-04-16 20:47:33
344
原创 Hive分析窗口函数 GROUPING SETS、GROUPING__ID、CUBE、ROLLUP使用说明和示例
Hive分析窗口函数 GROUPING SETS、GROUPING__ID、CUBE、ROLLUP使用说明和示例0、概述GROUPING SETS:根据不同的维度组合进行聚合,等价于将不同维度的GROUP BY结果集进行UNION ALL GROUPING__ID:表示结果属于哪一个分组集合,属于虚字段 CUBE:根据GROUP BY的维度的所有组合进行聚合。 ROLLUP:为CUBE的子集,以最左侧的维度为主,从该维度进行层级聚合。这几个分析函数通常用于OLAP中,不能累加,而且需要根据不
2021-04-16 15:42:48
1354
原创 spark-sql创建时间维度表
1、概述:在数据分析,数据仓库和数据开发的过程中,经常会用到各种时间粒度,尤其是会按照各种时间粒度(进行上钻或者下钻)出统一逻辑报表数据,此时将面临分析时间粒度爆炸的问题(使用grouping set解决,见另一篇文章),所以有必要产出一个时间维度表。2、时间维度表建表语句CREATE TABLE if not exists dim_date_df( `dt` string comment '日期,格式为20200325,同分区格式', `new_dt` date comment '日期,
2021-04-16 15:00:53
859
转载 MySQL 存储过程及创建时间维度表
一、概述存储过程MySQL 5.0 版本开始支持存储过程。存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。# SQL语句:先编译后执行存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。1.1、优点存储过程可封装,并隐藏复杂的商业逻辑。 存储过程可以回传值,并可以接受参数。
2021-04-15 20:35:34
493
原创 hive sql和spark sql查询同一条SQL语句,结果不一样(甚至条数差别很大)的原因
hive sql和spark sql查询同一条SQL语句,结果不一样(甚至条数差别很大)的原因哪位老师帮忙看一下同一句sql,hive sql 查出来 160w ,但是spark sql (spark-shell或者spark.sql()) 查出来只有150w0、结论:可以看下SQL 中 join on 两边的字段类型是否一致我之前遇到这样的问题,发现on 条件 等号两边的字段类型不一致造成的当 on 条件两边字段类型,一边是string,一边是bigint; 在hive中 会 把 st..
2021-03-11 22:01:15
2419
转载 shell脚本中的单行注释和多行注释
shell 脚本中的单行注释和多行注释1. 单行注释众所周知 # , 比如想要注释 echo "Hello World"[root@simth]# vim test.sh# echo "Hello World"2. 多行注释:方法一:: '语句1语句2语句3语句4'方法二::<<!语句1语句2语句3语句4!3、综合示例代码及输出:$ cat test.sh echo "hello world"ech
2021-03-10 10:10:44
2334
7
HelloUDF.zip
2019-10-11
MacDown使用小例子
2018-05-23
使用指针,进一步熟悉链表操作,实现添加,删除,修改,查找,排序等功能
2012-08-08
运算符重载和函数重载
2012-08-08
停车场管理系统
2012-08-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人