hive> select * from student;
OK
10 zhao
12NULLTime taken: 0.125 seconds, Fetched: 2 row(s)
hive> select * from teacher;
OK
Time taken: 0.108 seconds
hive> INSERT OVERWRITE TABLE teacher select id,null from student where student.name='zhao';
---------------------------------省略一堆输出--------------------------------------------
hive> select * from teacher;
OK
10NULLTime taken: 0.125 seconds, Fetched: 1 row(s)
// 可以看出通过insert 以及 select from where配合将指定的格式插入到目标表中。
通过insert 将查询结果写入文件中
命令格式
Standard syntax:
INSERT OVERWRITE [LOCAL] DIRECTORY directory1
[ROW FORMAT row_format] [STORED AS file_format] (Note: Only available starting with Hive 0.11.0)
SELECT ... FROM ...
Hive extension (multiple inserts):
FROM from_statement
INSERT OVERWRITE [LOCAL] DIRECTORY directory1 select_statement1
[INSERT OVERWRITE [LOCAL] DIRECTORY directory2 select_statement2] ...
row_format
: DELIMITED [FIELDS TERMINATED BYchar [ESCAPED BYchar]] [COLLECTION ITEMS TERMINATED BYchar]
[MAP KEYS TERMINATED BYchar] [LINES TERMINATED BYchar]
[NULL DEFINED ASchar] (Note: Only available starting with Hive 0.13)
语句说明
row_type、file_format说明见: Hive表的定义,删除、修改
使用例子
hive> select * from student;
OK10 zhao
12NULLTimetaken:0.134 seconds, Fetched:2 row(s)
INSERTOVERWRITE local directory '/hadoop/asiainfo/zhaopy/hivetest' select * from student;
------------------------省略一堆输出------------------
[ochadoop@server7 hivetest]$ ls
000000_0.snappy 000001_0.snappy
[ochadoop@server7 hivetest]$ cat 000000_0.snappy
10zhao
[ochadoop@server7 hivetest]$ cat 000001_0.snappy
12\N
通过insert values插入数据
命令格式
Standard Syntax:
INSERT INTO TABLE tablename [PARTITION (partcol1[=val1], partcol2[=val2] ...)] VALUES values_row [, values_row ...]
Where values_row is:
( value [, value ...] )
where a value is either null or any valid SQL literal
语句说明
不同于标准SQL,此处不支持插入部分列,即,所有的列都需要插入。缺失的列需要用null代替。
分区:以后补充。
使用例子
hive> select * from student;
OK
10 zhao
12NULLTime taken: 0.137 seconds, Fetched: 2 row(s)
hive> insert into table student values (50, null);
----------------省略一堆输出
hive> select * from student;
OK
10 zhao
12NULL50NULLTime taken: 0.126 seconds, Fetched: 3 row(s)
删
命令格式
Standard Syntax:
DELETEFROM tablename [WHERE expression]
语句说明
该语句在hive0.14之后可用,只能用于支持ACID的表中。
使用例子 与普通SQL相同。
改
命令格式
Standard Syntax:
UPDATE tablename SET column = value [, column = value ...] [WHERE expression]
语句说明
该语句只能用于支持ACID的表中
Bucketing 列和Partitioning 列无法被更新。
该语句可用在hive0.14版本 。
使用例子 与普通SQL相同。
混合操作
所谓混合操作,就是将以上语句写入一个语句中,加入条件进行操作
语句格式
Standard Syntax:
MERGEINTOtable> AS T USINGtable> AS S
ONWHENMATCHED [AND] THENUPDATESET <set clause list>
WHENMATCHED [AND] THENDELETEWHENNOTMATCHED [AND] THENINSERTVALUES<value list>
语句说明
该语句只能用于支持ACID的表中
Bucketing 列和Partitioning 列无法被更新。
该语句可用在hive 2.2版本 。
使用例子
MERGEINTO merge_data.transactions AS T
USING merge_data.merge_source AS S
ON T.ID = S.ID and T.tran_date = S.tran_date
WHENMATCHEDAND (T.TranValue != S.TranValue AND S.TranValue ISNOTNULL) THENUPDATESET TranValue = S.TranValue, last_update_user = 'merge_update'WHENMATCHEDAND S.TranValue ISNULLTHENDELETEWHENNOTMATCHEDTHENINSERTVALUES (S.ID, S.TranValue, 'merge_insert', S.tran_date);
Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,Given 1->1->2, return 1->2.Given 1->1->2->3->3, return&
在JDK1.5之前的单例实现方式有两种(懒汉式和饿汉式并无设计上的区别故看做一种),两者同是私有构
造器,导出静态成员变量,以便调用者访问。
第一种
package singleton;
public class Singleton {
//导出全局成员
public final static Singleton INSTANCE = new S