查詢hivesql結果儲存hdfs或者本地操作教程

2021-12-30 07:34:14 字數 2030 閱讀 8947

本地insert overwrite local directory "/tmp/zhuqinghua"

select user, login_time from user_login;

select userid ,count(*), num from bi.test where date_time = '2018-01-01' group by date_time,userid order by num desc limit 10;

hdfs

insert overwrite directory "/tmp/zhuqinghua"

select user, login_time from user_login;

select userid ,count(*), num from bi.uniuserride_by_city_daily where date_time = '2018-01-01' group by date_time,userid order by num desc limit 10;

/etc/init.d/hive-server2 status

/etc/init.d/hive-server2 stop

/etc/init.d/hive-server2 start

hive>create database database_name;建立資料庫

hive>creat database if not exists database_name

hive> show databases; 檢視資料庫

hive> show databases like 'h.*';如果資料庫比較多的話,也可以用正規表示式來檢視:

hive> use default; --使用哪個資料庫

hive>show tables; --檢視該資料庫中的所有表

hive>show tables 『*t*』; --支援模糊查詢

hive> describe tab_name; --檢視表的結構及表的路徑

hive> describe database database_name; --檢視資料庫的描述及路徑

hive> drop database if exists database_name; --刪除空的資料庫

hive> drop database if exists database_name cascade; --先刪除資料庫中的表再刪

hive>show partitionst1; --檢視表有哪些分割槽

hive>alter table table_name rename to another_name; --修改表名

hive>drop tablet1; --刪除表t1

hive> drop table if exists t1;

hive不支援修改表中資料,但是可以修改表結構,而不影響資料

有local的速度明顯比沒有local慢:

hive>load data inpath '/root/inner_table.dat' into table t1; 移動hdfs中資料到t1表中

hive>load data local inpath '/root/inner_table.dat' into table t1; 上傳本地資料到hdfs中

load data local inpath '$/目錄'overwrite into table table_namepartition (分割槽);

建立表orc壓縮儲存

create table if not exists record_orc ( rid string,

uid string,

bid string,

price int,

source_province string, target_province string, site string, express_number string, express_company string, trancation_date date

stored as orc;

insert into table record_orc select * from record;

hive SQL查詢結果新增行號

用視窗函式可以解決這個問題 例 select row number over order by user id desc tab.from dws user visit month1 as tab limit 20 結果 其實要是單純想加乙個自增的行號,沒有順序要去的話 over 裡面可以空著 例 ...

Hive sql 查詢連續登入天數

目前有兩列資料,分別是使用者id和使用者登入的時間,現需要統計使用者連續登入的最大天數,中間如有斷開,則不算連續,如下圖示例。在hive中進行操作,首先啟動hadoop集群環境,進入到hadoop安裝目錄,sbin start dfs.sh,jps檢視hadoop集群有無正常啟動 正常啟動後,輸入h...

mysql將查詢結果儲存到檔案

1.新建查詢語句檔案query.sql,內容如下 set names utf8 select feedid,city message from feed limit 1000 上面的set names utf8語句是設施當前使用的編碼,如果編碼和資料庫的編碼不一致,會出現亂碼 2.執行如下 root...