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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

小文件治理之hive文件合并:hive小文件合并的三种方法

發布時間:2023/12/20 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 小文件治理之hive文件合并:hive小文件合并的三种方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 前言
  • 一、concatenate方法
  • 二、insert overwrite方法
  • 三、insert overwrite select * 用法
  • 總結


前言

hive分區下,有很多小文件,例如一個分區有1000個文件,但每個文件大小是10k,數倉大量這種小文件。
小文件太多,需要消耗hdfs存儲資源,mr,spark計算的任務數。
為了處理小文件,需要對它們進行合并。


一、concatenate方法

#對于非分區表
alter table tablename concatenate;
#對于分區表
alter table tablename partition(dt=20201224) concatenate;

優點: 使用方便
缺點: concatenate 命令只支持 RCFILE 和 ORC 文件類型,需要執行多次,才能把文件合并為1個。

二、insert overwrite方法

insert overwrite table tableName partition(dt=2022031100) select column1,column2 from tableName where dt=2022031100

缺點: select 的字段需要自己拼起來,select * 的話,由于帶有dt字段,無法寫入新分區。

優點: 支持所有數據類型

三、insert overwrite select * 用法

從select * 中去掉一列的方法:
insert overwrite tableA select (name)?+.+ from test;

hive> set hive.cli.print.header=true; hive> select * from test; hook status=true,operation=QUERY OK name friends children address songsong ["bingbing","lili"] {"xiao song":18,"xiaoxiao song":19} {"street":"hui long guan","city":"beijing"} yangyang ["caicai","susu"] {"xiao yang":18,"xiaoxiao yang":19} {"street":"chao yang","city":"beijing"} Time taken: 0.14 seconds, Fetched: 2 row(s)

從select * 中去掉列 address

hive> select `(address)?+.+` from test; hook status=true,operation=QUERY OK name friends children songsong ["bingbing","lili"] {"xiao song":18,"xiaoxiao song":19} yangyang ["caicai","susu"] {"xiao yang":18,"xiaoxiao yang":19} Time taken: 0.144 seconds, Fetched: 2 row(s)

用這個方法就能去掉分區表的日期字段

注意,語法生效,需要設置

hive> set hive.support.quoted.identifiers=none;

更多用法參考: https://blog.csdn.net/spark_dev/article/details/123692018


總結

concatenate 和 insert overwrite方法 都可以實現hive文件的合并。

總結

以上是生活随笔為你收集整理的小文件治理之hive文件合并:hive小文件合并的三种方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。