从品牌网站建设到网络营销策划,从策略到执行的一站式服务
reduce执行完毕之后,每个reduce都会将KV输出到一个文件中。那么KV输出到文件中时是以什么格式输出的呢?这就涉及到两个抽象类:OutputFormat和RecordWriter。
目前成都创新互联公司已为千余家的企业提供了网站建设、域名、虚拟主机、网站托管、服务器托管、企业网站设计、宁武网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
public abstract class OutputFormat {
public OutputFormat() {
}
public abstract RecordWriter 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对象。
public abstract class RecordWriter {
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写入到文件中。
继承 FileOutputFormat,返回的RecordWriter是TextOutputFormat.LineRecordWriter。将每个KV转换为文本的每一行。可以定义key和value在文本中的分隔符,默认是“\t”。
同样继承于FileOutputFormat,返回的RecordWriter是一个匿名内部类,直接将所有的KV以追加的方式写入到文本中,不另外分行(除非原先数据中带有换行)。
SequenceFileOutputFormat将它的输出写为一个顺序文件。如果输出需要作为后续 MapReduce任务的输入,这便是一种好的输出格式,因为它的格式紧凑,很容易被压缩。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图