===================================================================
异常片段:java.lang.NoSuchFieldError: ALLOW_UNQUOTED_CONTROL_CHARS
原因:jackson 这个包的版本与 hadoop 的 jackson 版本不一致,替换即可解决
===================================================================
异常片段:No matching method for class org.apache.hadoop.hive.ql.udf.UDFFromUnixTime with (string). Possible choices: _FUNC_(int) _FUNC_(bigint, string) _FUNC_(bigint) _FUNC_(int, string)
原因:执行SQL时,使用了from_unixtime函数,但参数用了非数值姓,就会产生此异常
解决办法:修改传给from_unixtime函数做参数的字段数据类型,脚本样例如下
alter table invites change bar bar int;
===================================================================
------------------------------------------------------------
创建表,分区列为 ds,以制表符 '\t' 作为列分割符
hive>
CREATE TABLE invites ( foo INT, bar STRING ) PARTITIONED BY (ds STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
创建表,将 select 的结果直接插入新表
hive>
CREATE TABLE ds_cnt1 ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' AS select ds,count(ds) as cnt from invites group by ds;
创建外部表,数据存储在HDFS,但不在HIVE的托管目录下
hive>
CREATE EXTERNAL TABLE tableName (columnName type) LOCATION '/hdfspath';
//import data to external table.
//INSERT INTO TABLE tableName partition (b='1', c='1') SELECT * from otherTableName ...
------------------------------------------------------------
Loading data from flat files into Hive:
The keyword 'OVERWRITE' signifies that existing data in the table is deleted.
If the 'overwrite' keyword is omitted, data files are appended to existing data sets
从一个本地文件导入数据到 HIVE
hive>
LOAD DATA LOCAL INPATH '/home/hadoop/invites_2.txt' OVERWRITE INTO TABLE invites PARTITION (ds='2013-04-08');
从HDFS导入数据到 HIVE (去掉 LOCAL 关键字即可)
hive>
LOAD DATA INPATH '/home/hadoop/invites_2.txt' OVERWRITE INTO TABLE invites PARTITION (ds='2013-04-08');
------------------------------------------------------------
修改表名
hive>
ALTER TABLE invites RENAME TO invites_pk;
修改表:字段修改,foo是 string 型,修改成 myFoo int 型
hive>
ALTER TABLE invites CHANGE foo myFoo INT;
修改表:表结构修改,
假设之前结构为:
id string
age int
foo int
bar int
ds string
假设之后结构为:
id string
age string
foo string
bar string
ds string
hive>
ALTER TABLE invites REPLACE COLUMNS (id string,age string,foo string,bar string);
添加字段:
hive>
ALTER TABLE invites ADD COLUMNS (t1 string,t2 string);
ALTER TABLE invites DROP COLUMNS (t1 string,t2 string);
------------------------------------------------------------
查看HIVEQL执行计划 explain 关键字
hive>
explain select * from tblName ...
------------------------------------------------------------
如果要执行复杂的SQL,那么可以用python编辑脚本并执行,比较方便
#!/usr/bin/env python
#coding:utf-8
import sys
import subprocess
con1 = "2013/02/28"
if len(sys.argv) > 1 :
con1 = sys.argv[1]
script1 = """
select concat( '#con1# ',main1.ct , ':00:00 --> ' , count(main1.rid) ) from (
select substr( trim(sub1.maketime),1,2) ct , sub1.row_id rid
from tbl_lrinputdetail_ext_pk sub1
where not sub1.row_id like '%row%'
and sub1.makedate like '%#con1#%'
) main1 group by main1.ct;
"""
script1 = script1.replace('#con1#',con1)
script1 = script1.replace('\t',' ')
script1 = script1.replace('\r\n',' ')
print script1
subprocess.call( 'echo "%s" | hive > out.log' % script1 , shell=True )
分享到:
相关推荐
hive笔记,保证绝对可用
hive笔记.md的
hive
大数据hive的全部笔记,需要的小伙伴可以下载哦!如果没有积分也可以私信我哦
语法笔记hive干货,没有废话,基础语法,自己学习中记录的基础简单内容,入门级别,分桶,分区,查询,常用命令等。
hive笔记。慕课网精心整理。本文档涵盖几乎所有hive所用到的功能。
【2-7Hive笔记-02】Hive基本操作专题.md.file
Hive笔记以及大数据hadoop配置环境
hive 超级详细笔记资料 十分适合初学者详细的hive 开发笔记
对Hive的学习过程总结,包括Hive的基本使用,Hive的调优,UDF函数的使用说明!
Hive操作笔记(呕心沥血制作)Hive操作笔记(呕心沥血制作)Hive操作笔记(呕心沥血制作)Hive操作笔记(呕心沥血制作)Hive操作笔记(呕心沥血制作)Hive操作笔记(呕心沥血制作)Hive操作笔记(呕心沥血制作)Hive...
hive hadoo MapReduce 介绍Hive。Hive入门,Hive学习笔记
Hive 学习笔记Hive
IT十八掌第三期配套课堂笔记 1、Hive工作原理、类型及特点 2、Hive架构及其文件格式 3、Hive操作及Hive复合类型 4、Hive的JOIN详解 5、Hive优化策略 6、Hive内置操作符与函数 7、Hive用户自定义函数接口 8、Hive的...
包括了Hive简介、安装搭建、常用操作、函数整理、优化整理。比较适合新手入门!个人整理,有问题请留言或发送邮件至name_hanlin@163.com
hive学习笔记
hive-笔记--hive常用用法: 内部表和外部表,导入数据,导出数据,将数据从hive的表中导出到本地磁盘目录中,HIVE的存储文件格式,修改表的分区,多重插入,HIVE的自定义函数功能,使用explode —— 行转列,配合...
hive学习笔记,大数据,数据仓库纪要.