首页 > 其他分享 >hive基本操作

hive基本操作

时间:2023-10-24 19:04:41浏览次数:42  
标签:comment testtable ods hive table 基本操作 tb

间隔几年,又开始频繁写hive的sql,整理一点关于hive常用的基本语句,只有天天写的时候才很熟练,过几年很容易遗忘的东西。

hive创建表

drop table if exists       ods.tb_fdn_testtable ;
create table if not exists ods.tb_fdn_testtable  (
    city            string  comment '地市', 
    county          string  comment '区县', 
    juxiang         string  comment '字段释义'
)
comment '表释义'
row format delimited 
fields terminated by '$'
null defined as ''
stored as textfile 
location '/user/hive/warehouse/ods.db/tb_fdn_testtable';

关于hive表的字段分隔符,建议自定义的比较好一些,因为做的项目不是银行金融业的,所以个人常用$符号或者#号。字段分隔符根据操作的数据种类自定义,一般分隔符和数据本身不冲突,但不排除特殊情况,最好设置多个字符作为分隔符,但在hive中还需要去改造配置才能使用。

好处是,格式统一,ETL处理方便,必要时少走弯路。在数据治理过程中少挖坑。

加载hdfs文件到表中

load data   inpath '/import_data/mysql_data/tb_fdn_testtable' overwrite into table ods.tb_fdn_testtable;

加载服务器文件到表中(多了个local)

load data  local inpath '/import_data/mysql_data/tb_fdn_testtable' overwrite into table ods.tb_fdn_testtable;

指定行数加载文件(例如跳过第一行)

用于加载的表第一行是列标题的这种情况

alter table tmp.table_name set tblproperties('skip.header.line.count'='1');

文件映射到表

文件映射到表
alter table ods.tablename add partition(acct_day='2023-08-03') location '/nocccdata/tablename/2023-08-03';

关于分区的简单操作:

批量删除分区
alter table tb_partition drop partition (etl_dt>='20181102',etl_dt<='20181104')
alter table tablename drop if exists partition (acct_day<>'');
删除分区
alter table dwa.tablename drop partition(acct_day='20230720');
增加分区
alter table dwa.tablename add partition(acct_day='20230720');

查看表详细格式(如查看是否为外部表)

desc formatted ods.tablename  ;

hive查询数据导出到本地:

insert overwrite local directory '/export/servers/hiveexport/tablenameFile.csv'  
row format delimited fields terminated by '$'  
collection items terminated by '\n'
select * from hive_tablename   ; 

hive表中字段包含分隔符的,建表语句处理

drop table if exists tmp.table_name;
create table if not exists tmp.table_name (
  id                         string  comment '主键',
  profession                 string  comment '专业类型',
  urban                      string  comment '城市农村'  
)
comment '临时表'
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
   'separatorChar' = ',',  --分隔符
   'quoteChar'     = '"', --引号
   'escapeChar'    = '\\' --转义字符
) 
 stored as textfile
location '/user/hive/warehouse/tmp.db/table_name'
tblproperties('skip.header.line.count'='1')  ; 
--跳过第一行-- 指定加载文件开始行数-- 这行放location后,不然很容易报错





标签:comment,testtable,ods,hive,table,基本操作,tb
From: https://blog.51cto.com/u_13104611/8009088

相关文章

  • oracle打开/关闭归档日志ARCHIVELOG
    1.使用SQLPlus登录用户名:sqlplus密码:assysdba 2.查询数据库是否是归档模式:查询结果为“ARCHIVELOG”表示数据库为归档模式SELECTlog_modeFROMv$database;3.关闭数据库shutdownimmediate;4.启动数据库mount模式startupmount;5.启动归档日志alte......
  • MYSQL 5.6.40基本操作
    MYSQL5.6.40基本操作基本语句进入数据库(记得输入密码)mysql-uroot-p查看所有库showdatabases;打开库use库名创建库createdatabase库名;删除库dropdatabase库名;表打开库use库名;查看库里的表 showtables;创建表createtablet1(idint,name......
  • ORA16401archivelogrejectedbyRFS解决方法
    之前做DataGuard做了一次Switchover切换,之后standby库就报如下错误:ThuJul2908:03:292010Errorsinfile/dba/oracle/admin/newccs/udump/newccs_rfs_19602.trc:ORA-16401:archivelogrejectedbyRFSThuJul2908:03:292010Errorsinfile/dba/oracle/admin/newc......
  • Hive学习笔记:多列求最大值、最小值
    一、最大值当在Hive中需要对多列数据求最大值时,可以使用函数greatest(a,b,c,d)实现。selectgreatest(a,b,c)from( select10asa,20asb,30asc)dd;--结果:30举个具体栗子:计算用户消费时,如果用户套餐有最低消费129元的话,不满12......
  • 农业全要素生产率的计算(使用HiveQL分析)
    需求:工作中需要计算农业全要素生产率数据,需要利用HiveQL进行数据仓库提取,然后进行转换式计算,最后需要进行要素生产效率分析,用于后续的深度数据挖掘。解决:CREATETABLEIFNOTEXISTSmytable( col1STRING, col2INT, col3DOUBLE)ROWFORMATDELIMITEDFIELDSTERMIN......
  • 报错Failed to execute spark task, with exception 'org.apache.hadoop.hive.ql.meta
    在执行hive on spark的时候 上面的错误可能有以下几种问题:1.版本问题 不匹配2.时间参数问题  设置的参数太小了3.在hive-site.xml文件中没有配置spark的home我的问题属于第一个问题导致没有跑成功当时也在想是不是内存出现了问题 ......
  • 链表、栈的基本操作
    栈的基本操作#include<iostream>usingnamespacestd;#defineOK1#defineERROR0#defineMaxSize100typedefintElemType;//定义栈_顺序栈structStack{ ElemType*top; ElemType*base; intstacksize;};intIsFull(Stacks);intIsEmpty(Stacks);//初始化in......
  • hive表加字段
    hive原表结构hive表加新字段interface_typealtertabletest.test_tableaddcolumns(interface_typestring);hive表新表结构......
  • dremio hive 连接
    dremio对于hive的连接实际上有两种方法,一种使用的是hive的metastore,一种是使用的hivejdbcserver第一中是官方支持的,第二种官方缺少直接的支持,需要自己开发相关的arp扩展一些参考实现cdata目前提供了一个开源实现,但是jdbc驱动使用的是自己的,实际上这个我们可以调整为h......
  • 使用JDBC操作数据库基本操作步骤
    书写jdbc需要四大要素:用户名、密码、URL、驱动Stringurl="jdbc:mysql://localhost:3306/test";Stringusername="root";Stringpassword="root";Stringdriver="com.mysql.jdbc.Driver";注册驱动Class.forName(driver);获取连接对象Con......