2017-03-03 84 views
0

我有一個要求,我想將5GB ORC文件分成5個文件,每個文件大小爲1 GB。 ORC文件是可拆分的。這是否意味着我們只能通過分割來分割文件條帶? 但我有要求根據大小拆分orc文件的位置。 將ex.split 5GB ORC文件分成5個文件,每個文件大小爲1 GB。如果可能的話請分享示例 。如何根據大小拆分ORC文件?

回答

0

一種常見的方法是,考慮到文件大小可以是5GB,100GB,1TB,100TB等。您可能希望掛載指向該文件的Hive表並指定一個指向不同目錄的表,然後運行使用由Hive提供的insert聲明從一個表格插入到另一個表格。

在腳本的開頭,請確保您有以下蜂巢標誌:

set hive.merge.mapredfiles=true; 
set hive.merge.mapfiles=true; 
set hive.merge.smallfiles.avgsize=1073741824; 
set hive.merge.size.per.task=1073741824; 

這樣,輸出平均每個減速將是1073741824 Bytes等於1GB

如果你想只使用Java代碼,這些標誌玩:

mapred.max.split.size 
mapred.min.split.size 

請檢查這些,他們是非常有用的:

+0

感謝您的回覆。 有沒有什麼辦法可以使用核心java分裂而不是配置單元? –

+0

請看我編輯的答案。 – dbustosp

+0

我需要一個完全基於Core Java API的解決方案。不是hadoop或mapreduce。無論如何非常感謝您花時間回覆' –

相關問題