Hive插入数据

1、创建完表之后,就可以插入数据了,在hive中,一般使用LOAD DATA插入数据,数据来源一般为两种,一种是从本地文件系统,第二种是从hadoop文件系统。基本语法如下:

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename[PARTITION (partcol1=val1,partcol2=val2,…)]

LOCAL是标识符指定本地路径,它是可选的;
OVERWRITE 是可选的,覆盖表中的数据;
PARTITION 也是可选的。
测试:
将下列数据插入到employee表中,数据格式为每个字段中间使用tab分割,每行使用回车,存储到一个txt文件中,

1201    Gopal   45000   Technical manager 1202    Manisha 45000   Proof reader 1203    lisong  50000   what is you 1204    xiaohau 88888   abcdefg 1205    xiaoming        99999   hehehehe

执行导入语句:

LOAD DATA LOCAL INPATH '/home/hadoop/HivePy/employee.txt' OVERWRITE INTO TABLE userdb.employee;

,然后查看结果得到:
Hive插入数据
2、使用python操作hive,插入数据,代码如下:

# coding:utf-8 from pyhive import hive from TCLIService.ttypes import TOperationState  # 打开hive连接 hiveConn = hive.connect(host='192.168.83.135',port=11111,username='hadoop') cursor = hiveConn.cursor()  # 执行sql语句 sql = ''' LOAD DATA LOCAL INPATH '/home/hadoop/HivePy/employee.txt' OVERWRITE INTO TABLE userdbbypy.employee ''' cursor.execute(sql, async=True)  # 得到执行语句的状态 status = cursor.poll().operationState print "status:",status  # 关闭hive连接 cursor.close() hiveConn.close()

执行代码,运行程序后查询相关表,结果如图所示:
Hive插入数据