1. 程式人生 > >如何將hive查詢結果匯出成txt檔案

如何將hive查詢結果匯出成txt檔案

原文地址:https://zhidao.baidu.com/question/241683835498891364.html    
-----------------------------------------------------------------------------
最近在使用hive時,需要將hive查詢的資料匯出到本地檔案系統,HQL語法如下:
  INSERT OVERWRITE [LOCAL] DIRECTORY directory1 select_statement1
  查詢結果匯出到本地檔案後,試圖使用excel載入時遇上了麻煩:不知道hive匯出檔案時使用的分隔符,
  使用文字編輯器開啟也顯示亂碼。
  最後在官方文件上找了半天才發現,hive使用 ^A 符號作為域的分隔符,原文如下:
  Data written to the filesystem is serialized as text with columns separated by ^A
  在python中可以使用line.split('\x01')來進行切分,也可以使用line.split('\001'),注意其中是單引號
  在java中可以使用split("\\u0001")來進行切分
  如果確實需要將查詢結果匯出到本地檔案,最好使用hive的命令:
  [sql] view plaincopy在CODE上檢視程式碼片派生到我的程式碼片
  bin/hive -e "select * from test" >> res.csv
  
  或者是:
  
  bin/hive -f sql.q >> res.csv
  
  其中檔案sql.q寫入你想要執行的查詢語句

  這問題在使用hive hql streaming時也會遇到,當你使用hql strreaming 將輸出直接寫入到hdfs目錄,然後你在該目錄上建立hive 外部表時,hive的輸出結果會將streaming 的key和value之間的分隔符修改為 \001,所以,在hql streaming和輸出為hive 外部表時,最好將streaming的最後輸出的分隔符修改為\001,並且hive外部表的分隔符應該設定為\001,注意:不要使用^A和\x01,如:
  [html] view plaincopy在CODE上檢視程式碼片派生到我的程式碼片
  create external table site_user_mapping_info_month(uid String,tag string,project_ids string,site_interests string) PARTITIONED BY(year String, month String) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001' LOCATION '/project/site_grouping/site_user_mapping_info_month';

-------------

更多的Java,Angular,Android大資料,J2EE,Python資料庫Linux,Java架構師,:

相關推薦

如何hive查詢結果匯出txt檔案

原文地址:https://zhidao.baidu.com/question/241683835498891364.html ----------------------------------------------------------------------

oracle 查詢結果輸出到txt檔案

在查詢語句裡先輸入spool filepath 中間是需要查詢的語句,最後spool off 就會把中間查詢的結果都輸入到file檔案裡 spool E:\log.txt; select id,name from users; spool off;

把Excel中的資料匯出txt檔案的注意問題

一、問題描述: 今天,我把Excel中的資料導成txt檔案後,用Java讀取這個txt檔案中的內容時,發現讀到到資料多了空白行(即列數增加了一倍),並且每一行的資料之間是以製表符(即和按下tab鍵的效果一樣或像Java中的“\t”)的間隔分割。 二、實驗重現: Excel

Postgresql查詢結果匯出檔案

1、寫入檔案命令: \o /mytemp/write.txt 接下來執行query命令: select rs.* from (select distinct(phone_no || ',') from t_cw where phone_no lik

匯出資料庫.txt檔案 .txt檔案匯入資料庫

using System.Data.SqlClient; using System.IO; using System.Configuration; namespace 錶轉txt txt轉表 { public partial class Form1 :

hive使用beelinehql結果匯出為csv檔案

編寫shell指令碼自動化匯出指定hql結果到csv檔案並刪除sql語句和關閉連線日誌 1. hql檔案準備 select a.enodebid as enodebid, sum(xdrsi

通過命令sql查詢結果匯出到具體檔案

有時候我們需要將一些查詢結果匯出到具體檔案中然後對結果進行處理。 但是在mysql命令列中不支援直接將檔案匯出。 查詢資料發現mysql提供一種命令可以實現直接匯出資料到檔案, mysql -uroot -proot test -e "select * from dem

利用 mysql workbench 資料庫匯出 migration 檔案

資料庫遷徙 migration 不管是在 Laravel 框架 中還是在 Codeigniter 框架中都提到,儼然是大勢所趨?! 「廢話」雖然我在專案中很少用到,因為我做的幾個專案都是直接去改資料庫的,然後直接匯出 sql 檔案上傳 live 站或是給客戶. mysql workbench

PHPExcel資料庫內的資料匯出excel檔案

        前兩天用到了將excel檔案匯入至資料庫中,果不其然,很快就用到了將資料庫內資料匯出成excel檔案,在網上瀏覽學習了很多網站之後終於完成了,今天就分享一個小例項。 一:上乾貨         1

eclipse程式匯出jar檔案

使用eclipse軟體開發,對於成品經常需要將程式碼打成jar包,然後將jar包拷貝到伺服器進行執行。使用eclipse打包的過程也比較簡單,但是也有很多坑,一不小心就會入坑。這篇部落格介紹如何在eclipse中將工程java程式碼(單獨的java程式碼也可)打成jar包。 工具/原料 電腦

除錯經驗——使用SQLPLUS查詢結果匯出到Excel

問題描述: 今天發現一個SQL指令碼在Toad中報錯,但在SQLPLUS中卻可成功執行。 問題隨之而來,在SQLPLUS中如何將查詢結果匯出到Excel中呢? 方法如下: Export SQ

從Mysql查詢結果,寫入txt檔案中,每個欄位用|分隔,下一條資料要換行

1.首先建立檔案 public static boolean createFile(String fileName, List<?> dtoList, Class<?> clazz, String path) { logger.debug("createF

mysql 資料匯出excel檔案(.xls格式)

匯出為txt檔案: select * from xi_table into outfile ’d:\test.txt’; 有時候有excel開啟的時候會出現亂碼, 因為office預設的是gb2312編碼,伺服器端生成的很有可能是utf-8編碼,這個時候你有兩種選擇: 在伺服器端使用iconv來進行編碼轉換:

mysql查詢結果匯出檔案 excel 或者csv

很多時候領導會說,導一份excel或者csv給我看看,這個時候很多人,回去寫一個自動程式匯出資料,但是我們同樣可以通過sql 語句匯出excel或者csv 一條sql 語句,相對於一段複雜的程式碼,方便程度和執行效率要快的多。 1 mysql連線+將查詢結果輸出到檔案。在命

Java程式的輸出結果寫到txt檔案

1.將輸出結果輸出到txt檔案 步驟一:標頭檔案 import java.io.FileOutputStream;                                import java.io.PrintStream;                 可能還會

db2查詢結果拼接一行

SELECT  replace(replace(xml2clob(xmlagg(xmlelement(NAME a, BRANCH_COMPANY_ID||','))),'<A>',''),'</A>','') AS branchIds FROM TZ

mysql命令列下資料匯出excel檔案(.xls格式)

在mysql命令列下執行以下sql語句: mysql>select * from xi_table into outfile ’/tmp/test.xls’; 一句話搞定。 linux系統儘量匯出在/tmp目錄下,不會涉及讀寫許可權問題! 匯出為txt檔案: se

反射3:利用java反射技術查詢結果封裝物件

package cn.itcast.domain; import java.lang.reflect.Method; import java.sql.Connection; import java.sql.PreparedStatement; import j

mysql 查詢結果輸出到檔案

直接用 mysql 命令# 連線本地資料庫,使用者名稱為 gino 密碼為 123456 指定所連線的資料庫為 mysql [email protected]:~$ mysql -h loc

mysql查詢結果匯出到excel中

SELECT *  from limit_record INTO OUTFILE 'e:/20180424.xls';SELECT *  INTO OUTFILE 'e:/20180424-2.xls'