Hive创建表

来源:互联网 发布:油画淘宝详情页模版 编辑:程序博客网 时间:2024/05/29 15:13

1、Create Table 命令用于在hive中创建表,语法如下:

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.] table_name[(col_name data_type [COMMENT col_comment], ...)][COMMENT table_comment][ROW FORMAT row_format][STORED AS file_format]

下面是用Create Table创建employee表,表结构如下:

Sr.No   字段名称    数据类型1   Eid int2   Name    String3   Salary  Float4   Designation String

创建命令如下:

CREATE TABLE IF NOT EXISTS userdb.employee(eid int,name String,salary String,destination String)COMMENT 'Employee details'ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'LINES TERMINATED BY '\n'STORED AS TEXTFILE;

输入上述命令,如果直接执行,则会提示如下错误:
大概意思是hadoop:supergroup这个权限无权对userdb.db文件进行操作,所以需要在登录beeline时输入用户名:hadoop,重新运行命令即可。
这里写图片描述
创建后查询可以看到创建的employee表
这里写图片描述
2、使用python操作hive创建employee表,代码如下:

# coding:utf-8from pyhive import hivefrom TCLIService.ttypes import TOperationState# 打开hive连接hiveConn = hive.connect(host='192.168.83.135',port=11111,username='hadoop')cursor = hiveConn.cursor()# 执行sql语句sql = ''' CREATE TABLE IF NOT EXISTS userdbbypy.employee(eid int,name String,salary String,destination String)            COMMENT 'Employee details'            ROW FORMAT DELIMITED            FIELDS TERMINATED BY '\t'            LINES TERMINATED BY '\n'            STORED AS TEXTFILE '''cursor.execute(sql, async=True)# 得到执行语句的状态status = cursor.poll().operationStateprint "status:",status# 关闭hive连接cursor.close()hiveConn.close()

运行代码,然后在beeline中查看结果,如图所示:
这里写图片描述

原创粉丝点击