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;
,然后查看结果得到:
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()
执行代码,运行程序后查询相关表,结果如图所示: