在寫hive中常用的方法時,感覺到那個頁面只適合寫函式等方法性的東西,沒法對乙個很常用的東西做深入**總結,顧新開乙個頁面來詳細介紹hive的深入綜合性操作。函式頁面內容見:**注:**內容來自自己工作總結以及學習《hive程式設計指南》總結
在shell介面輸入hive --help,就可以得到命令列引數。注意:這裡給的h2cmd,是我這裡做了修改。
這裡重點介紹-e,-f,–hiveconf,–hivevar這四個的用法
hive -e "sql **"
hive中「一次使用」命令
hive -e "select * from mytable limit 10"
也可以輸入到檔案中
hive -e "select * from mytable limit 10" > /tmp/mytable/data.csv
檢視資訊
cat /tmp/mytable/data.csv
如果覺得在執行的時候出現很多不必要的中間log,可以加入**-s**,表示開啟靜默執行模式
hive -s -e "select * from mytable limit 10" > /tmp/mytable/data.csv
hive -f data.hql
這裡介紹兩種方法:hiveconf 和 hivevar,hiveconf屬於hive-site.xml下面配置的環境變數,hivevar為臨時變數。在執行時hiveconf必須帶上命名空間,如**$,hivevar直接使用$**即可。
一次執行**
hive --hiveconf pt_dt=2018-07-25 -e "select * from mytable where pt_dt = "$" limit 10" > /tmp/mytable/data.csv
執行檔案
data.hql的**如下:
select * from mytable where pt_dt = "$" limit 10
在終端執行語句
hive --hiveconf pt_dt=2018-07-25 -f data.hql > /tmp/mytable/data.csv
一次執行
hive --hivevar pt_dt=2018-07-25 -e "select * from mytable where pt_dt = "$" limit 10" > /tmp/mytable/data.csv
執行檔案
select * from mytable where pt_dt = "$" limit 10
在終端執行語句
hive --hivevar pt_dt=2018-07-25 -f data.hql > /tmp/mytable/data.csv
alter table dwd.op_topic_activity drop if exists partition (topicid=2,batchid=19,pt_dt="2019-01-03",classid=6);
python 非同步執行裝飾器
使用多執行緒寫乙個簡單的非同步呼叫裝飾器 async call.py import threading def myasync f thr threading.thread target f,args args,kwargs kwargs thr.start thr.setname 方法 forma...
程式裝載(程式執行)
程式裝載時,將程式使用的虛擬記憶體位址和計算機實際分配的物理記憶體位址做了對映。程式裝載時獲取了一段連續空間,關閉該程式時,該程式雖然釋放了占用的記憶體空間,但是該記憶體空間並不一定與空餘記憶體空間連續,故其他程式申請時可能無法申請到該記憶體空間。如圖一。有一種解決辦法是記憶體交換,將程式放到硬碟中...
執行時 DLL 裝載
呼叫loadlibrary 或者loadlibraryex 系統按照 dll搜尋順序找到 dll檔案,若成功就將 dll檔案對映到程序的位址空間中,並加引用。如果已經載入了,則只增加引用。注意,同名不同路徑系統不認為是乙個 dll。1 如果之前沒有呼叫過 loadlibrary ex 或者loadl...