日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何将hive查询结果导出成txt文件

發(fā)布時間:2025/3/11 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何将hive查询结果导出成txt文件 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
原文地址:https://zhidao.baidu.com/question/241683835498891364.html ----------------------------------------------------------------------------- 最近在使用hive時,需要將hive查詢的數(shù)據(jù)導(dǎo)出到本地文件系統(tǒng),HQL語法如下:
  INSERT OVERWRITE [LOCAL] DIRECTORY directory1 select_statement1
  查詢結(jié)果導(dǎo)出到本地文件后,試圖使用excel加載時遇上了麻煩:不知道hive導(dǎo)出文件時使用的分隔符,
  使用文本編輯器打開也顯示亂碼。
  最后在官方文檔上找了半天才發(fā)現(xiàn),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")來進行切分
  如果確實需要將查詢結(jié)果導(dǎo)出到本地文件,最好使用hive的命令:
  [sql] view plaincopy在CODE上查看代碼片派生到我的代碼片
  bin/hive -e "select * from test" >> res.csv
  
  或者是:
  
  bin/hive -f sql.q >> res.csv
  
  其中文件sql.q寫入你想要執(zhí)行的查詢語句

  這問題在使用hive hql streaming時也會遇到,當你使用hql strreaming 將輸出直接寫入到hdfs目錄,然后你在該目錄上創(chuàng)建hive 外部表時,hive的輸出結(jié)果會將streaming 的key和value之間的分隔符修改為 \001,所以,在hql streaming和輸出為hive 外部表時,最好將streaming的最后輸出的分隔符修改為\001,并且hive外部表的分隔符應(yīng)該設(shè)置為\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,大數(shù)據(jù),J2EE,Python,數(shù)據(jù)庫,Linux,Java架構(gòu)師,:

http://www.cnblogs.com/zengmiaogen/p/7083694.html

總結(jié)

以上是生活随笔為你收集整理的如何将hive查询结果导出成txt文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。