通过hive将excel文件_hive 之 将excel数据导入hive中 : excel 转 txt
一、需求:
1、客户每月上传固定格式的excel文件到指定目录。每月上传的文件名只有结尾月份不同,如: 10月文件名: zhongdiangedan202010.xlsx , 11月文件名: zhongdiangedan202011.xlsx
2、将上传的excel文件导入hive中,在做进一步数据分析。
二、思路:
1、通过python的pandas模块将excel文件转换为txt文件;
2、编写shell脚本,使用 hdfs dfs -put 将txt文件导入指定表(方便每月执行)。
三、pandas.read_excel 包:
def read_excel(io,sheet_name=0,header=0,names=None,index_col=None,usecols=None,squeeze=False,dtype=None,engine=None,converters=None,true_values=None,false_values=None,skiprows=None,nrows=None,na_values=None,keep_default_na=True,na_filter=True,verbose=False,parse_dates=False,date_parser=None,thousands=None,comment=None,skipfooter=0,convert_float=True,mangle_dupe_cols=True)
常用属性字段说明,如下:
属性字段
默认字段
含义
io
无,必选
excel文件路径
sheetname
0
取第一个sheet的内容;取多个sheet内容:sheetname=[0,1];取全表:sheetname=None
header
0
指定为表头的行,取第一行为表头 header = 0;无表头:header = None;
names
None
提取指定列名的数据
index_col
None
指定多少列为索引列,或指定对应列名为索引列。
usecols
None
指定要取的列,None:取所有列;只能是列表。注:使用次属性,sheet_name 也必须使用。
skiprows
0
忽略(不取)指定行数的数据,行数为列表形式。如,忽略第1行,第9行数据: skiprows=[1,9]
skip_footer
0
忽略倒数n行数据
四、实现代码:
excel_to_txt.py
#!/user/bin env python
importpandas as pdimportsysdefexcel_to_txt(monthNo):
df= pd.read_excel('/data/excelfile/zhongdiangedan%s.xlsx'%(monthNo),header=None) #使用pandas模块读取数据, header 默认0,指定表头行,None:不取表头
print('开始写入txt文件')
df.to_csv('/data/txtlfile/zhongdiangedan%s.txt'%(monthNo), header=None, sep='\t', index=False) #写入txt中,tab分隔
print('文件写入成功!')if __name__ == '__main__':
monthNo=sys.argv[1]
excel_to_txt(monthNo)
执行python: python excel_to_txt.py 202010
建表:
create tableimpt_excel_data_zhongdiangedan(
col1 string,
col2 string,
col3 string,
col4 string,
col5 string,
col6 string
)partitionedby(month_id string)
row format delimited fields terminatedby '\t'lines terminatedby '\n'storedastextfile
location'/data/hive/database_name/impt/impt_excel_data_zhongdiangedan';
txt_to_hive.sh
#!/bin/bash
monthNo=$1hive-e" use database_name; --指定数据库 database_name
alter table tmp_content_zhongdiangedan dropif exists partition (month_id=$monthNo); --删除分区
alter table tmp_content_zhongdiangedan add partition (month_id=$monthNo); --添加分区"# 导入数据
hdfs dfs-put /data/txtlfile/zhongdiangedan$monthNo.txt /data/hive/database_name/impt/impt_excel_data_zhongdiangedan/month_id=$monthNo
执行shell: sh txt_to_hive.sh 202010
通过hive将excel文件_hive 之 将excel数据导入hive中 : excel 转 txt相关推荐
- 将EXCEL表格数据导入hive中
将EXCEL表格数据导入hive中 第一步:将excel表格转为.csv格式文件(utf-8格式) 第二步:将建表语句中分隔符改为逗号(英文),格式改为text文本格式 第三步:使用linux rz命 ...
- R语言write.xlsx函数将数据写入Excel文件:写入Excel文件并自定义表单的名称、将数据写入Excel文件新的表单(sheet)中、将文件保存为xls文件格式(而不是xlsx)
R语言write.xlsx函数将数据写入Excel文件:写入Excel文件并自定义表单的名称.将数据写入Excel文件新的表单(sheet)中.将文件保存为xls文件格式(而不是xlsx) 目录
- Python使用pandas读取Excel文件多个WorkSheet的数据并绘制柱状图和热力图
问题描述:在当前文件夹中有一个存放同一门课程两个班级同学成绩的Excel文件"学生成绩.xlsx",每个工作表中存放一个班级的成绩.编写程序,使用pandas读取其中的数据,然后绘 ...
- vue excel导入mysql详细教程_Vue前端上传EXCEL文件,后端(springBoot+MyBatis+MySQL)解析EXCEL并批量插入/更新数据库...
文章目录 Vue前端 后端 controller层 service层:如何解析Excel文件 MyBatis:实现批量插入 在mysql中设置唯一索引Unique Index MySQL中的inser ...
- Python操作Excel文件:插入一列数据
问题描述:已有Excel文件,其中包含5列数据,要求在第3列前插入一列数据,保存为新文件. 参考代码: 运行结果: --------董付国老师Python系列教材-------- 1)<Pyth ...
- print python excel分隔_办公自动化 Python 小工具,对Excel文件,按某一列拆分成多个Excel文件或sheet...
使用pandas.xlwings.os 库文件,对Excel文件,按某一列拆分成多个Excel文件或sheet,提高工作效率. # -*- coding: utf-8 -*- "" ...
- ug如何导入excel数据点_怎样将dat文件中的数据导入ug中进行操作
怎样将dat文件中的数据导入ug中进行操作 我的问题是,我用了两种方法作一件事情,第一种是直接将cpp 程序的内容粘贴到用一个回调函数中,这样算法生成的数据直接供u g函数使用.这样做的话,感觉很麻烦 ...
- 将Excel的数据导入DataGridView中(转)
https://www.cnblogs.com/lhxhappy/archive/2008/11/26/1341873.html /// <summary>/// 点击按钮导入数据/// ...
- matlab打开矩阵表,如何将Excel数据导入MATLAB中?:EXCLE中通过矩阵表输出选项
怎么把matlab中处理的数据存入到excel中 可以直接xlswrite命令. data=randn(100,1); % data为需要存储的数 xlswrite('D:\write2Excel.x ...
- matlab导入word数据,如何将Excel数据导入MATLAB中?/excel数据导入word模板
如何将Excel数据导入MATLAB中? 从excel中导入,可以用xlsread()函数. 例如: A=xlsread('C:\Users\Administrator\Desktop\07-29预. ...
最新文章
- linux目录默认权限是什么,linux文件目录默认权限(详解)
- 再一次证明了普通的U盘和SD(TF)卡的不可靠
- Redis多实例及主从搭建
- global.min.css,css3-媒体查询样式不覆盖原始样式
- Spark实战之读写HBase
- 防范网络*** 应用层防护是重点
- Java设计模式—工厂方法模式抽象工厂模式
- 读写分离方案_项目读写分离方案
- 判断是否离开当前页面
- Mac下docker安装kali/ubuntu14.04
- inDesign教程,如何共享inDesign文件?
- 广电为什么禁止投屏_广电网络不能投屏 怎么投屏到电视上
- 视频剪辑怎么学?五大经验分享,入门可参考
- 移动平台动画设计的12个原则
- 利用T0定时器定时 100ms,每当定时时间到就使 P1.7 求反
- 如何使用TensorRT加速深度学习推理
- 运行金蝶KIS记账王V10.0对系统有什么要求
- QPainter 绘制圆角矩形 drawRoundRect详解
- 如何多方位布局程序化购买生态链条?
- python selenium启动不了火狐浏览器(firefox)的解决办法