- 博客(111)
- 资源 (8)
- 问答 (2)
- 收藏
- 关注
原创 五分钟学会hive中的行转列,列转行(UDAF和UDTF)以及concat,collect_set,concat_ws用法
准备数据:nameconstellationblood_type小明小熊座R小红猎户座XR小白猎户座R小蓝小熊座R小绿小熊座R行转列创建表并导入数据create table person_info(name string, constellation string, blood_type string) row fo...
2018-11-29 20:45:46 1577 2
原创 linux里的葫芦娃----awk ,sed,grep
准备:创建测试文件,分隔符为制表符"\t":第二个测试文件先说说grep:查找出文件aaa.txt中的日期格式字段接下来结合cut使用一下:先找到系统文件/etc/passwd来测试查找文件中的用户有哪些并去除超级用户 cut -f 2 testfile.txt //得到目标文件第二列,默认分割符\tcut -f 2 -d ‘-’ aaa.txt //得到目标文件第二列,...
2018-11-26 21:36:58 497 1
原创 linux getopts实现模拟mysql参数登录
getopts脚本设置方式# ":u:p:h:P:" 中开头的:是指区分错误类型# u: 变量后 : 指使用时必须有参数值# OPTARG 是指系统内置变量while getopts ":u:p:h:P:" optdo case $opt in u) user=$OPTARG echo "用户名: ${user}" ;; p) pwk=$OPTARG echo "用户密码: ${pwk} " ;; h) host=$OPTARG
2022-05-25 17:04:16 277 1
原创 hive的limit失效问题
问题语句select app_name,count(1) as cnt from ( select name,seq_id from tmp.data_20220418 group by name ,seq_id) a group by app_name limit 10; 当我在spark去运行这个语句时加不加limit 结果是一致的但是当我用beeline去运行时, 加limit 结果只有一行错误数据, 不加limit 才能跑出正常结果排查过程把limit相关参数
2022-04-29 16:42:02 2811
原创 hive自动化上传文件到表
自动化实现上传文件到表#!/bin/bash. /etc/profile. ~/.bash_profile. ~/.bashrcerror() { if [[ $? != 0 ]]; then echo "$@ 运行失败" exit 1 fi}# 待上传表名inset_table_name=$1# 待上传文件名file_name=$2# 分区名pt=$3load_path="/tmp/load_path/"curr
2022-03-04 19:29:44 1244
原创 spark-windows本地环境搭建
本机系统windows10Hadoop是hadoop-3.2.0,替换hadoop.dll 和winutils.exe (直接换掉bin目录)github找 https://github.com/steveloughran/winutils/blob/master/hadoop-3.0.0/binscala-SDK-2.12.10 , spark2.4.3不需要本地环境pom配置即可 (注意spark3.0会出现java 9 报错,网上的方法都不可用)环境变量JAVA_HOME、HADOOP..
2022-01-11 16:44:11 1066
原创 python-subprocess模块连接mysql实践
subprocess模块call和run方法测试,运行环境windows# -*- coding: utf-8 -*-import subprocessimport osimport pandas as pdfrom sqlalchemy import create_engineimport sysengine = create_engine("mysql+pymysql://root:root@10.1.60.110:3306/datax?charset=utf8mb4", .
2022-01-07 15:48:39 1160
原创 Python-读取EXCEL数据计算行数,并写入mysql(五)
# -*- coding: utf-8 -*-"""Created on 2021/12/30 11:25SQL 数据类型from sqlalchemy import Integerfrom sqlalchemy import DATEfrom sqlalchemy import BIGINT"""import pandas as pdfrom sqlalchemy import create_enginefrom sqlalchemy import VARCHAR## from
2022-01-04 09:25:49 453 1
原创 python-读取EXCEL多个sheet数据写入csv(四)
需求读取一个EXCEL所有的sheet数据多次运行追加写入csv文件# -*- coding: utf-8 -*-"""Created on 2021/12/29 19:20@author: tangge"""import pandas as pdimport timepath = "D:/code_fileAll/test_file/input/老头乐.xlsx"res_path = "D:/code_fileAll/test_file/output/"curr_d.
2022-01-04 09:24:26 2342
原创 python-读取mysql数据写入EXCEL(三)
需求读取mysql数据,使用SQL过滤数据SQL结果追加数据到EXCEL 文件# -*- coding: utf-8 -*-"""Created on 2021/12/29 16:44@author: tange"""from sqlalchemy import create_engineimport pandas as pdimport timecurr_date = time.strftime("%Y%m%d", time.localtime())print(c.
2021-12-31 19:45:42 1152
原创 python-读取txt文件并取部分列的带某字符的数据写到EXCEL(二)
需求:读取本地csv文件取某一列包含某字符数据,可用正则结果写入EXCLEimport pandas as pdimport timecurr_date = time.strftime("%Y%m%d", time.localtime())print(curr_date)path = "D:/code_fileAll/test_file/input/111.csv"res_path = "D:/code_fileAll/test_file/output/"# 读取文件内容,第一.
2021-12-31 19:43:34 393
原创 python-连接mysql的两种方式(一)
一、sqlalchemy""" sqlalchemy 连接方式, 直接提交执行"""from sqlalchemy import create_engineengine = create_engine("mysql+pymysql://root:root@10.1.60.110:3306/datax", max_overflow=0, # 超过连接池大小外最多创建的连接,为0表示超过5个连接后,其他连接请求会阻塞 (默认为10)
2021-12-31 19:41:53 2392
原创 dataX-windows系统的Mysql到Mysql(三)
执行环境python3.7 , datax3.0, windows10,mysql8.0.27一、获取job.json样本python D:\dataxTest\datax\bin\datax.py -r mysqlreader -w mysqlwriter > mysqlTomysql.jsonmysqlTomysql.json配置如下{ "job": { "content": [ { "reader".
2021-12-28 16:08:27 883 1
原创 dataX-windows系统下mysql与txt的转化(二)
本篇的配置环境 https://www.jianshu.com/p/6c086c0ab2a9mysql 8.0.27 ,python3.7 ,windows系统一、文件准备新建workJson 和 workfile 目录分别存放原始文件,和json原始文件名file.txt分割符为\t二、txt文件到txt文件json模板获取python D:\dataxTest\datax\bin\datax.py -r txtfilereader -w txtwriter > txtTotx.
2021-12-27 19:05:22 1541
原创 dataX-windows版安装与实操(mysql8、python3) (一)
操作环境: mysql 8.0.27、windows10、datax3.0 、python3.7.3、Navicat Premium15下载地址800多M :http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz一、安装与测试1.建立无中文,无空格目录解压下载的安装包python3.0需要替换安装目录bin下的3个文件替换文件下载:链接: https://pan.baidu.com/s/1gPQtrqu2emJnTP.
2021-12-27 17:35:20 1633
原创 Git-分支合并与冲突解决(三)
一、分支创建dev分支 git branch dev删除本地仓库dev分支 git branch -d dev删除远程仓库dev分支 git push origin :dev切换到dev分支 git checkout dev合并分支 git merge dev重命名分支 git branch -m OldName NewName分支合并模拟处理操作# 已知 master 分支上有文件b.txt git branch dev # 新建分支git checkout dev # 切
2021-12-27 15:30:20 283
原创 Git-基本操作命令(二)
本文章操作配置 : 版本 2.34.1 环境windows安装请查看 https://www.jianshu.com/p/92e97aae93ee基本操作命令打开命令行初始化配置 git init查看本地库配置 git config -lvim编辑器修改配置 git config -e添加远程仓库 study是别名 git remote add study https://gitee.com/tangge1/study.git修改远程仓库 git remot.
2021-12-23 19:33:35 1018
原创 Git-Windows版安装与测试(一)
一、软件安装Git下载:版本2.34.1-windows64位链接: https://pan.baidu.com/s/1Giah945mxrmsWp3DDIMDAg 提取码: j5az注:点击安装在非中文无空格目录下安装过程中的注意点鼠标右键可以调出命令行环境变量配置安装完成后windows+R --> 输入CMD回车,在黑窗口输入git --version出现版本号即安装成功二、基本配置配置用户和签名# 项目级别git config user.na
2021-12-23 16:10:49 225
原创 mysql进阶操作去重及空值处理篇(四)
此篇主要介绍去重和去重过程中空值的处理源表部分内容一、去重的四种方式group by-- 去重时 空和null均参与计算select name from demo.product_name group by name ;distinctselect distinct name from demo.product_name ;窗口函数-- 伪列实现去重select * from ( select *,ROW_NUMBER() ov
2021-12-20 16:10:19 2748
原创 mysql进阶操作join篇(三)
本文主要介绍mysql中常用join和in,exists 的转化mysql 版本:mysqlVer8.0.27forWin64onx8664(MySQLCommunityServer−GPL)\color{red}{mysql Ver 8.0.27 for Win64 on x86_64 (MySQL Community Server - GPL)}mysqlVer8.0.27forWin64onx8664(MySQLCommunityServer−GPL)注意:使用5.7以下版本建表是不支持两个
2021-12-20 11:11:08 618
原创 mysql 进阶操作json篇(二)
一、 样例数据准备建表CREATE TABLE `product_name_copy_2` ( `id` bigint NOT NULL AUTO_INCREMENT, `name` json DEFAULT NULL COMMENT '产品名', `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NULL DEFAULT CURRENT_T
2021-12-17 16:21:29 541
原创 mysql进阶操作基础篇(一)
默认mysql字符串编码字符集:utfmb4排序规则:utf8mb4_general_ci → 该设置字段不区分大小写排序规则: utf8mb4_bin → 可识别字段内容的大小写-- 建表语句CREATE TABLE product_name ( id bigint NOT NULL AUTO_INCREMENT ,product_name varchar(200) DEFAULT NULL ,create_time timestamp NULL DEFAULT CU.
2021-12-17 15:02:40 778
原创 linux 获取文件列数并转置行列
标题获取文件列数的两种实现方式原始素材文件一、使用awk# 获取每一行列数awk '{print NF}' file.txt # 获取最长列数cat file.txt |awk '{print NF}' |sort -nrk1|head -1# 获取最短列数cat file.txt |awk '{print NF}' |sort -nk1|head -1二、使用wc命令# 获取列数,wc -w 不会识别换行,因此只能单行识别cat file.txt |head -1|wc -w
2021-12-16 11:45:25 4892
原创 解决本机装载mysql无法使用ip连接问题
基础配置mysql 版本 5.7连接工具Navicat一、先用localhost进入mysql,找到mysql库里的user表二、修改第一列Host值为 %三、刷新配置 flush privileges;四、编辑连接设置ip连接
2021-12-16 10:57:50 2399
原创 hiveSQL计算连续值
原始测试数据准备nameseq_numa1a2b4b5c1c3c4创建测试表create table if not exists tmp.rows_preced_test_20210526(name string comment '用户名',seq_num int comment '使用产品编码')partitioned by (pt string comment 'YYMMDD数据入库时间')ROW FOR.
2021-10-13 17:02:42 433
原创 查找文件内容并返回文件名与查找内容对应行号linux和window同时实现
需求:有大量的小文件,想需要找到这些文件中,符合某种特定条件的文件名以及在该文件里的行号,这里介绍linux和python两种实现方式一、liunx实现# 查询 某些文件内是否包含某字符, 放回行数+文件名 + 该行内容# 查询当前目录及子目录文件中以log结尾的文件中, 存在呆子字符的行grep -rn '呆子' ./ --include=*.log返回结果: 文件名+行号二、python实现在window 系统可用python实现""" 读取指定目录下的csv文件, .
2021-09-18 16:27:13 943
原创 查看hive表(分区)大小,支持多写法
针对hive内表,经常要查看表大小后分区路径设置的脚本#!/bin/bash. /etc/profile. ~/.bash_profile. ~/.bashrc# 参数 "tmp" "tmp_20200808" "201909"if [[ $# = 3 ]];then database=$1 table_name=$2 hadoop fs -du -h /user/hive/warehouse/${database}".db"/${table_name} |grep .
2021-09-18 10:12:55 2087
原创 查看hive库下那些表是视图
多人用同一个数据库,有人表名命名不规范导致视图和表无法分离开来,当想查看那些是表,那些是视图时,遇到了问题。网上有提供show views;命令,但是在当前的hive版本中正本不支持主要问题在于两点grep 做过滤默认为模糊匹配,需要添加 -w 参数使用uniq -u 来过滤会有一部分隐藏文件和其它建的外表(已删除表)也会被输出代码如下#!/bin/bash. /etc/profile. ~/.bash_profile# 报错退出error() { if [[ $?.
2021-03-29 16:39:52 1051
原创 linux 常见问题及解决方案(1)
linux中将逗号分隔的txt格式文件转成csv 格式,解决中文乱码问题iconv -f UTF-8 -t GBK ${txt_file_name} -o ${csv_file_name}vi编辑器中重window直接上传的文件中包含<U+FEFF> 字符打开文件执行ESC + shift : set nobomb保存关闭,问题解决文件很大或太多文件需要加表头sed -i '1i\table_head' file_name遇到linux磁盘IO被占用,想查到是哪个程序pidsta.
2021-03-06 15:38:50 317
原创 python读取mysql结果写入Excel
代码环境 python3#!/usr/bin/env python# -*- coding: utf-8 -*-import pymysqlimport xlwtimport timecurr_date=time.strftime("%Y-%m-%d", time.localtime()) # 结果文件存放位置rest_file_path="C:\\Desktop\\"# 参数 mysql表名,读取字段,要读取字段值,要提取的数据量def export_excel(table_n.
2021-02-09 16:13:02 352 1
原创 scala函数和方法的调用
方法和函数的区分Scala 中使用 val 语句可以定义函数,def 语句定义方法。/** * 同包调用其他类 * def functionName ([参数列表]) : [return type] * */object testFun{ def main(args: Array[String]): Unit = { val a = 4 var n= trueOrFllse(a > 2 ) println(n) // 此处为函数体,并在方法体内调用
2021-02-09 16:00:53 352
原创 python 实现TXT转excel 并切割文件
话不多说,上代码本次使用的是python3环境,使用pandas读取文件,读取速度有点慢,建议数据量50W以下优化方案可以使用mysql来操作sql来完成大数据量的操作# -*- coding: utf-8 -*-import pandas as pdimport sys#from bbb import *import timecurr_date=time.strftime("%Y-%m-%d", time.localtime()) #文件名路径path="C:/Users/
2021-02-09 15:51:00 451 1
原创 hive where条件字段丢失问题
问题我们执行屏蔽掉有字符的字段,但是下面这种执行方式会把空的过滤掉-- name 为空的会丢失select * from tmp.name_sex_201201 where name not regexp '本人|[*]' 解决方案select * from tmp.name_sex_201201 where nvl(name,'') not regexp '本人|[*]' ...
2021-02-09 15:34:43 313
原创 自动化下载hive表数据(可指定分隔符和屏蔽字段)
一、脚本内容#!/bin/bash. /etc/profile. ~/.bash_profile# 报错退出error() { if [[ $? != 0 ]]; then echo "$@ 运行失败" #事务回滚机制 sh ~/bee_u_e.sh "drop table if exists tmp.nidaye_${pt}" exit 1 fi}#脚本使用说明if [[ $1 = help ]];t
2021-02-09 15:20:01 332
原创 hive 的regexp_extract与零宽断言使用
结论:零宽断言的括号不计算在regexp_extract 函数中select regexp_extract(‘hehe: dog呵呵’,’(?>=hehe).*?([a-z]+)’,1)
2020-05-09 17:46:53 526 1
原创 hive实现多分隔符
hive 建多分隔符表一、测试外表:create EXTERNAL -- 外表标识 table tmp.deli_tmp_0117(z1 string,z2 string) partitioned by (pt string comment 'YYYYMM')ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.Mul...
2020-01-18 21:06:44 385 4
原创 自己用安装包安装MongoDB的启停看状态脚本
之前下载了一个MongoDB–4.0版本的,安装完不能像其他人一样使用service mongod start|status|stop脚本开始在网上找了一大堆的脚本,但是都不能用,尤其是看状态模块失效。于是自己动手写了一个在/etc/init.d文件夹下新建文件mongod#!/bin/sh# ### BEGIN INIT INFO # Short-Description: mong...
2019-01-22 17:53:26 180
原创 linux下MongoDB的安装以及windows下Robo 3T 远程连接MongoDB
今天在使用MongoDB时远程连接是出现了一些问题下载MongoDB的安装包,传到linux系统目录下,解压tar -zxvf mongodb-linux-x86_64-4.0.5.tgz -C /usr/local创建数据库和log日志文件地址mkdir -p /data/mongodb_datamkdir -p /data/mongodb_log在安装目录下启动bin/mon...
2019-01-21 20:51:04 1470
原创 python连接kafka并消费数据
连接kafka服务端查看topic在idea里导入模块pykafka编写代码# 导入安装包from pykafka import KafkaClient# 设置客户端的连接信息client = KafkaClient(hosts="hadoop01:9092,hadoop02:9092,hadoop03:9092")# 打印所有的topicprint(client.topics)...
2019-01-19 21:24:21 5101
原创 python在idea里安装scikit-learn模块报错问题及解决的坎坷之路
今天使用到了scikit-learn模块,就在下图点加号添加此模块。创建了一个项目先写test代码from sklearn.feature_extraction import DictVectorizerdef dictVec(): dict = DictVectorizer() data = dict.fit_transform([{'city': '北京', 'temp...
2019-01-04 19:42:46 1568
Hadoop的core下的jar包
2018-12-08
hive 一个表同时插入多个表
2022-05-11
spark3.0 运行报错
2022-01-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人