Python 使用write写进文件,在hive中转换数据出现null
2017-03-06 15:39
337 查看
今天接到一批新数据,需要清洗入库,这些数据有些时间没有hour,只有年月日和分秒,细细观察后发现都是在第9小时的数据的时间格式不对,所以使用python重新将小时写进,入到hive的外部表,在使用hql将时间格式化入到另一个表,但是在最后的数据中,除了我修改过的时间值是null,其他均正常,我想不明白这是什么原因,还请大神帮助解决?
最初的源数据:(其中”|”前面试是时间,精确到毫秒,后面是一个数字串,外部表只有两个字段)
2016/09/04 07:54:03 109.636|0139
2016/09/04 07:54:03 133.878|1390
2016/09/04 07:54:03 133.753|1396
2016/09/04 37:19 974.281|1380
2016/09/04 37:19 974.414|1385
2016/09/04 37:19 975.497|1525
使用的py脚本,就是在分钟前加上 09:
入到hive中的外部表是对的,
下面是使用insert into 插入一个新表中,其中stat_time 是timastamp 类型的
使用insert into到另一个表中之后,09小时的数据时间就为null
查看编码方式是 uft-8 。如果以上的方式使用vi编辑则时间显示正常
博主学识浅薄,还望知道的大神们提醒一二。
最初的源数据:(其中”|”前面试是时间,精确到毫秒,后面是一个数字串,外部表只有两个字段)
2016/09/04 07:54:03 109.636|0139
2016/09/04 07:54:03 133.878|1390
2016/09/04 07:54:03 133.753|1396
2016/09/04 37:19 974.281|1380
2016/09/04 37:19 974.414|1385
2016/09/04 37:19 975.497|1525
使用的py脚本,就是在分钟前加上 09:
# coding:utf-8 import sys import os lines=open('./'+sys.argv[1]) output=open(sys.argv[1]+'.p','wb') r=lines.readlines(); for s in r: if s[16]!=':': output.write(s[:11] + '09:' + s[11:]) else: output.write(s) lines.close() output.close()
入到hive中的外部表是对的,
hive>select * from zsyh_data; 2016/09/04 07:54:03 109.636 0139 2016/09/04 07:54:03 133.878 1390 2016/09/04 07:54:03 133.753 1396 2016/09/04 09:37:19 974.281 1380 2016/09/04 09:37:19 974.414 1385 2016/09/04 09:37:19 975.497 1525
下面是使用insert into 插入一个新表中,其中stat_time 是timastamp 类型的
insert into zsyh_data_new select from_unixtime( unix_timestamp( substr(stat_time,1,20), 'yyyy/MM/dd HH:mm:ss' ), 'yyyy-MM-dd HH:mm:ss' ) AS stat_time,Digital from zsyh_data;
使用insert into到另一个表中之后,09小时的数据时间就为null
hive>select * from zsyh_data_new; 2016/09/04 07:54:03 0139 2016/09/04 07:54:03 1390 2016/09/04 07:54:03 1396 null 1380 null 1385 null 1525
查看编码方式是 uft-8 。如果以上的方式使用vi编辑则时间显示正常
博主学识浅薄,还望知道的大神们提醒一二。
相关文章推荐
- 【hive】使用load inpath导入数据时出现NULL原因解析
- hive中建好表后,使用load命令从本地文件系统导入数据,去表中查全是null
- Python--使用xlwt将列表类型的数据写到Excel xls文件中--TxtToExcel
- C++类中包含string类型数据使用read和write实现文件读取和输出时遇到的问题
- MFC中常用数据类型转换及文件和对话框和几个控件的使用
- pyinstaller使用-python项目转换成exe可执行文件
- 将undefault和null的数据转换成bool类型的数据 使用!!
- 把MATLAB数据转换成1QN格式,并保存到文件供ISE使用
- 使用原生sql查询数据返回object类型list时,转换数据列出现转换类型错误(但写法正确)
- hive导入数据出现NULL
- 使用python读取csv文件,并将数据更新至mysql
- VC中使用CFile正确的追加写中文数据到文件不出现乱码-unicode字符集
- 使用python获取webservice数据并输出到文件
- 使用unlist将日期型数据的列表转换为向量时,出现的异常
- 【原】使用Json作为Python和C#混合编程时对象转换的中间文件
- python 文件处理模块的使用,如何读取文件中数据
- Hive 导入数据出现NULL
- python 文件处理模块的使用,给一个文件写入数据
- Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法