我在文檔中遇到this page on CompressedStorage,它讓我有點困惑。將數據從壓縮文件加載到Hive的建議方式是什麼?
根據頁面,如果我的輸入文件(在AWS s3上)是壓縮的gzip文件,我應該首先加載數據,選項爲STORED AS TextFile
,然後使用選項STORED AS SEQUENCEFILE
創建另一個表並將數據插入到該文件中。這真的是推薦的方式嗎?
或者我可以直接將數據加載到選項STORED AS SEQUENCEFILE
的表格中嗎?
如果前一種方法真的是推薦的方式,有沒有爲爲什麼它是任何進一步的解釋?
順便說一句,這適用於所有在hadoop中工作的框架,不僅適用於HIVE。 – RojoSam
感謝您的解釋。關於你的最後陳述'如果你的文件很小,那麼它沒關係,你在談論任何類型的文件嗎?因此,如果我有一個100MB的'gzip'文件,如果我將它作爲TextFile加載,它不會有什麼區別,對吧? – simplycoding
至少不是很大的區別。文本文件和序列文件各有優缺點。但即使是一個GZip文件也是不可拆分的,你不想分割一個暗示創建更多映射器的小文件。每個塊的「最佳」大小在默認的hadoop塊大小中定義,並且在當前版本中爲128 MB(除非有特定的場景)。一個好的選擇可以合併在RECORD LEVEL壓縮的一個大序列文件中的所有文件(不是GZip的文件級別)。 – RojoSam