中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

十四、MapReduce--OutputFormat和RecordWriter抽象類

發布時間:2020-08-02 17:22:32 來源:網絡 閱讀:415 作者:隔壁小白 欄目:大數據

一、基本原理

? reduce執行完畢之后,每個reduce都會將KV輸出到一個文件中。那么KV輸出到文件中時是以什么格式輸出的呢?這就涉及到兩個抽象類:OutputFormat和RecordWriter。

1、OutputFormat

public abstract class OutputFormat<K, V> {
    public OutputFormat() {
    }

public abstract RecordWriter<K, V> getRecordWriter(TaskAttemptContext var1) throws IOException, InterruptedException;

    public abstract void checkOutputSpecs(JobContext var1) throws IOException, InterruptedException;

    public abstract OutputCommitter getOutputCommitter(TaskAttemptContext var1) throws IOException, InterruptedException;
}

其實主要就是創建RecordWriter對象。

2、RecordWriter

public abstract class RecordWriter<K, V> {
    public RecordWriter() {
    }

    //將KV寫入到輸出流
    public abstract void write(K var1, V var2) throws IOException, InterruptedException;

    //關閉流
    public abstract void close(TaskAttemptContext var1) throws IOException, InterruptedException;
}

主要就是write方法,將KV寫入到文件中。

二、常用的OutputFormat實現類

1、TextOutputFormat

? 繼承 FileOutputFormat,返回的RecordWriter是TextOutputFormat.LineRecordWriter。將每個KV轉換為文本的每一行。可以定義key和value在文本中的分隔符,默認是“\t”。

2、SequenceFileOutputFormat

? 同樣繼承于FileOutputFormat,返回的RecordWriter是一個匿名內部類,直接將所有的KV以追加的方式寫入到文本中,不另外分行(除非原先數據中帶有換行)。
? SequenceFileOutputFormat將它的輸出寫為一個順序文件。如果輸出需要作為后續 MapReduce任務的輸入,這便是一種好的輸出格式,因為它的格式緊湊,很容易被壓縮。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乃东县| 衡阳市| 许昌县| 阿图什市| 龙口市| 余江县| 葫芦岛市| 禄劝| 建昌县| 望都县| 江油市| 白山市| 巩义市| 桃园市| 化德县| 鹿邑县| 潞西市| 甘肃省| 乐平市| 定远县| 始兴县| 福州市| 霞浦县| 太湖县| 仙游县| 监利县| 安溪县| 齐齐哈尔市| 鹤峰县| 深圳市| 新宁县| 萍乡市| 岗巴县| 渑池县| 康乐县| 柳江县| 准格尔旗| 塔城市| 永福县| 南皮县| 安西县|