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