1. 程式人生 > >【Hive】HiveQL:資料操作

【Hive】HiveQL:資料操作

本篇主要演示Hive的資料操作,包括向表中裝載資料、插入資料、建立表以及匯出資料。一 向表中裝載資料1 語法結構
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
2 示例
hive> load data local inpath '/home/hadoop/emp/'
    > into table emp;
Loading data to table hive.emp
OK
Time taken: 0.95 seconds
hive> select *from emp;
OK
emp.id	emp.name
1	Alen
2	Jane
3	Tom
4	Peter
Time taken: 0.252 seconds, Fetched: 4 row(s)
hive> 
二 通過查詢語句向表中插入資料1 語法結構
INSERT OVERWRITE TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...) [IF NOT EXISTS]] select_statement1 FROM from_statement;
INSERT INTO TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...)] select_statement1 FROM from_statement;
 
Hive extension (multiple inserts):
FROM from_statement
INSERT OVERWRITE TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...) [IF NOT EXISTS]] select_statement1
[INSERT OVERWRITE TABLE tablename2 [PARTITION ... [IF NOT EXISTS]] select_statement2]
[INSERT INTO TABLE tablename2 [PARTITION ...] select_statement2] ...;
FROM from_statement
INSERT INTO TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...)] select_statement1
[INSERT INTO TABLE tablename2 [PARTITION ...] select_statement2]
[INSERT OVERWRITE TABLE tablename2 [PARTITION ... [IF NOT EXISTS]] select_statement2] ...;
 
Hive extension (dynamic partition inserts):
INSERT OVERWRITE TABLE tablename PARTITION (partcol1[=val1], partcol2[=val2] ...) select_statement FROM from_statement;
INSERT INTO TABLE tablename PARTITION (partcol1[=val1], partcol2[=val2] ...) select_statement FROM from_statement;
2 示例
hive> create table t_emp(id int , name string);
OK
Time taken: 1.611 seconds
hive> insert overwrite table t_emp
    > select *from emp;
hive> select *from t_emp;
OK
t_emp.id	t_emp.name
1	Alen
2	Jane
3	Tom
4	Peter
Time taken: 0.296 seconds, Fetched: 4 row(s)
三 單個查詢語句中建立表並載入資料通過Create Table AS實現:
hive> create table t_emp as
    > select *from emp;
hive> select *from t_emp;
OK
t_emp.id	t_emp.name
1	Alen
2	Jane
3	Tom
4	Peter
Time taken: 0.311 seconds, Fetched: 4 row(s)
四 匯出資料1 語法結構
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 BY char [ESCAPED BY char]] [COLLECTION ITEMS TERMINATED BY char]
        [MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]
        [NULL DEFINED AS char] (Note: Only available starting with Hive 0.13)
2 示例
hive> insert overwrite local directory  '/home/hadoop/emp'
    > select *from emp;
[[email protected] ~]$ vim /home/hadoop/emp/000000_0 
1^AAlen
2^AJane
3^ATom
4^APeter
注:資料中的列與列之間的分隔符是^A(ascii碼是\00001)。3 使用Hadoop命令匯出
[[email protected] ~]$ hadoop fs -copyToLocal /user/hive/warehouse/hive.db/emp/ /home/hadoop/
[[email protected] ~]$ cat emp/*
1Alen
2Jane
3Tom
4Peter
五 插入值到表中1 語法結構
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
2 示例
hive> insert into emp values(5,'Jack'),(6,'Winter');
六 修改操作1 語法結構
Standard Syntax:
UPDATE tablename SET column = value [, column = value ...] [WHERE expression]
注:update操作僅僅在支援ACID的表上執行。七 刪除操作1 語法結構
Standard Syntax:
DELETE FROM tablename [WHERE expression]
注:delete操作僅僅在支援ACID的表上執行。八 合併操作1 語法結構
Standard Syntax:
MERGE INTO <target table> AS T USING <source expression/table> AS S
ON <boolean expression1>
WHEN MATCHED [AND <boolean expression2>] THEN UPDATE SET <set clause list>
WHEN MATCHED [AND <boolean expression3>] THEN DELETE
WHEN NOT MATCHED [AND <boolean expression4>] THEN INSERT VALUES<value list>
注:merge操作僅僅在支援ACID的表上執行。

相關推薦

HiveHiveQL資料操作

本篇主要演示Hive的資料操作,包括向表中裝載資料、插入資料、建立表以及匯出資料。一 向表中裝載資料1 語法結構LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRIT

Hive05-HiveQL資料操作

1、向管理表中裝載資料 既然Hive沒有行級別的資料插人、資料更新和刪除操作,那麼往表中裝載資料的唯一途徑就是使用一種“大量”的資料裝載操作。或者通過其他方式僅僅將檔案寫人到正確的目錄下。 在“分割槽表、管理表”中我們已經看到了一個如何裝載資料到管理表中的例子,這裡我們稍微

HiveQL資料操作

向管理表中轉載資料   既然Hive沒有行級別的資料插入、資料更新和刪除操作,那麼往表中裝載資料的唯一途徑就是使用一種“大量”的資料裝載操作。或者通過其他方式僅僅將檔案寫入到正確的目錄下。   例如: LOAD DATA LOCAL INPATH '${e

HiveQL資料操作(四)

向管理表中載入資料: hive> load data local inpath '/home/zkpk/test' overwrite  into table testpar partition (day='0925');//0925分割槽內的資料會先刪除 通過

Hive06-HiveQL查詢

1、SELECT FROM語句 1.1、使用正則表示式來指定列 我們甚至可以使用正則表示式來選擇我們想要的列。下面的查詢將會從表stocks中選擇symbol列和所有列名以price作為字首的列: SELECT symbol ,`price.*` FROM stocks

Hive07-HiveQL檢視

檢視可以允許儲存一個查詢並像對待表一樣對這個查詢進行操作。這是一個邏輯結構,因為它不像一個表會儲存資料。換句話說,Hive目前暫不支援物化檢視。 當一個查詢引用一個檢視時,這個檢視所定義的查詢語句將和使用者的查詢語句組合在一起,然後供Hive制定查詢計劃。從邏輯上講,可以想象

Hive08-HiveQL索引

Hive 只有有限的索引功能。 Hive 中沒有普通關係型資料庫中鍵的概念,但是還是可以對一些欄位建立索引來加速某些操作的。一張表的索引資料儲存在另外一張表中。同時,因為這是一個相對比較新的功能,所以目前還沒有提供很多的選擇。然而,索引處理模組被設計成為可以定製的 Java

轉載筆記無os的LwIP在TCP server歷程中網路資料傳送,串口出現tcp_write及tcp_receive錯誤。

  2016年09月07日 22:13:58 新野-新野 閱讀數:6180 標籤: LWIP 更多 個人分類: 轉載筆記 做一個,串列埠收到資料然後通過tcp主動傳送出去的東西,但是目前遇到以下問題,當tcp初始化後連

Hive13-實戰案例1——資料ETL

需求: 對web點選流日誌基礎資料表進行etl(按照倉庫模型設計) 按各時間維度統計來源域名top10 已有資料表 “t_orgin_weblog” : +----------------

python練習分支迴圈操作

>>>if 0: print("Hello") >>>if 1: print("Hello") Hello >>>if "

Vue.js學習筆記3資料繫結,事件繫結

資料繫結 使用Vue時在Vue物件的el欄位中要指定一下根容器,這裡用id選擇器。這個例子同時學習了data和methods的基本用法。 資料繫結(data-binding)可以將Vue物件中的data的值繫結到HTML標籤中的某些位置,則修改時只需要修改物件中相應data的值即

廣告《大話資料結構》在多看書城6月6日中午12點至晚上24點特價銷售0.99元

因多看書城成立兩週年舉辦大促銷活動,所以我的圖書《 大話資料結構 》 電子版於6月6日中午12點至晚上24點特價銷售:0.99元(聽說新註冊使用者送3元,這樣就等於一分不花了)。 希望有興趣瞭解和學習資料結構的讀者前去購買。 坦白說,對於過去購買《大話資料結構》紙質書的讀者,特別是前三次印刷的讀者,我

甘道夫HBase基本資料操作詳解完整版,絕對精品

hbase(main):014:0> describe 'rd_ns:itable' DESCRIPTION                                                                                              

Python記憶體檢視(操作資料共享記憶體)

memoryview memoryview可以使用不同的方式讀取和操作同一塊記憶體,並且原有的記憶體位元組不會隨意移動。類似於C中的強轉。 例如,使用memoryview修改一個短整型有符號整數陣列

Pandas-Cookbook07資料清洗

# -*-coding:utf-8-*- # by kevinelstri # 2017.2.17 import pandas as pd import numpy as np import matplotlib.pyplot as plt # ---

MongoDB學習筆記6資料備份(mongodump)與恢復(mongorestore)流程

備份資料 要備份某個DB中的全部Collection,相當於備份RDBMS中某個Schema下的全部Table。比如想要備份這個DB: > show dbs admin 0.000GB config 0.000GB local 0.000

bzoj2333[SCOI2011]棘手的操作 可並堆+STL-set

space efi ras 當前 ati blog log down ace 題目描述 有N個節點,標號從1到N,這N個節點一開始相互不連通。第i個節點的初始權值為a[i],接下來有如下一些操作: U x y: 加一條邊,連接第x個節點和第y個節點 A1 x v: 將

整理C#文件操作大全(SamWang)

cto read image creating ram exceptio file類 詳細 ima 文件與文件夾操作主要用到以下幾個類:   1.File類:   提供用於創建、復制、刪除、移動和打開文件的靜態方法,並協助創建 FileStre

LinuxLinux中常用操作命令

詳細信息 hadoop 用戶組 軟件 name vim使用 title redhat tail Linux簡介及Ubuntu安裝 常見指令 系統管理命令 打包壓縮相關命令 關機/重啟機器 Linux管道 Linux軟件包管理 vim使用 用戶及用戶組管理 文件權限管理

RedisRedis的常規操作命令

更改 非關系型 數據結構 過期 with 隨機 move expire rpo NoSQL是一種非關系型數據庫,非關系型數據庫庫和傳統的關系型數據庫不同,非關系性體現在不需要依賴表進行數據存儲。常見的非關系型數據庫有Redis、MonoDB、HBase等,這些是基於key-