python处理数据,存进hive表的方法

yipeiwu_com6年前Python基础

首先,公司的小组长给了我一个任务,把一个txt的文件中的部分内容,存进一个在hive中已有的表的相同结构的表中。所以我的流程主要有三个,首先,把数据处理成和hive中表相同结构的数据,然后仿照已有的hive中表的结构再创建一张新的数据表,最后把本地的txt文件上传到hive中新建的数据表中。

1:已有的数据表的结构和在hive表中的结构完全对不上,下面的图是原来hive中表的结构和小组长给我的txt中表的结构:

大家可以看出,我们原来的hive中表的字段一共有17个,而组长给我的表中的字段一共有9个,其中最后一个为json结构,而且顺序还不对,所以我们要进行筛选,把对应上的字段放到相应位置,对应不上的字段写成空。

大家要注意几个地方,原来的数据是按照tab来划分的,所以我们要数好对应的tab的数目,好来计算出来数据的实际的位置信息,然后我们按照原来hive表中的数据顺序,重新排列我们新建表的数据的顺序,下面给大家看看结果:

其中line[0]=null,line[1]=102,大家以此类推。

3:我们把本地的txt文件导入到hive表中。首先我们要新建一个和原来hive表中相同结构的数据表,然后把我们的数据导入到表中,

hive> creat table new_sft(x1 string,x2 string ,...,xn string) partitioned by (d string);

建好表之后,把数据导入到新表之中:

hive> load data local inpath‘/home/opendev/1.txt' into table new_sft;

最后给大家看看我的最终的结果:

以上这篇python处理数据,存进hive表的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python中使用mysql数据库详细介绍

一、安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可。 Linux 下的安装可能会更加简单,除了下载安装包进行安...

python opencv将表格图片按照表格框线分割和识别

如下小程序为使用python+opencv将表格图片,按照表格进行分割,并识别分割后的子图片中的文字,希望对需要的小伙伴有一些些帮助。具体的实现见如下代码。 # -*- coding...

python运行时间的几种方法

最早见过手写的,类似于下面这种: import datetime def time_1(): begin = datetime.datetime.now() sum =...

解决csv.writer写入文件有多余的空行问题

在用csv.writer写入文件的时候发现中间有多余的空行。 最早打开方式只是‘w',会出现多余的空行,网上建议使用binary形式‘wb'打开可以解决问题: with open('...

python实现根据指定字符截取对应的行的内容方法

工作中遇到的,在一个.c文件中有很多函数,这个.c是自动生成的,需要将所有的函数通过extern放到.h中,每个函数都是UINT32 O_开头,通过正则表达式进行字符匹配以及通过line...