Hive创建表

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 int
2   Name    String
3   Salary  Float
4   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-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 = ''' 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().operationState
print "status:",status

# 关闭hive连接
cursor.close()
hiveConn.close()

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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值