spark多文件输出
来源:互联网 发布:ubuntu查看gpu 编辑:程序博客网 时间:2024/06/05 22:49
1.因为spark是用hadoop的api进行输出的,MultipleOutputFormat是hadoop用于支持多文件输出的,所以自定义一个MultipleOutputFormat类
import java.io.IOException;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.mapred.JobConf;import org.apache.hadoop.mapred.RecordWriter;import org.apache.hadoop.mapred.TextOutputFormat;import org.apache.hadoop.mapred.lib.MultipleOutputFormat;import org.apache.hadoop.util.Progressable;public class MyMultipleOutput extends MultipleOutputFormat<String, String>{ private TextOutputFormat<String, String> output = null;@Overrideprotected String generateFileNameForKeyValue(String key, String value,String name) {String[] split = key.split(",");String device=split[0];String year=split[1].substring(0,4);String month=split[1].substring(5,7);String day=split[1].substring(8,10);/*name是reduce任务默认文件名,注意如果这里返回的文件名不追加name,*就会造成多个reduce获取到的文件名都是day,多个reduce写一个文件,文件内容只会有一个reduce输出的内容*/return device+"/"+year+"/"+month+"/"+day+"/"+name;}@Overrideprotected RecordWriter<String, String> getBaseRecordWriter(FileSystem fs,JobConf job, String name, Progressable arg3) throws IOException {if (output == null) { output = new TextOutputFormat<String, String>(); } return output.getRecordWriter(fs, job, name, arg3);}}
2.pair类型RDD的saveAsHadoopFile方法进行输出
deviceDateKeyPair.saveAsHadoopFile("d://multioutput/", NullWritable.class, String.class, MyMultipleOutput.class);
0 0
- spark多文件输出
- Spark多文件输出(MultipleOutputFormat)
- Spark多文件输出(MultipleTextOutputFormat)
- Spark多文件输出(MultipleTextOutputFormat)
- Spark 同步提交应用/多文件输出
- Hadoop,Spark :文件输出压缩
- spark 多目录输出
- spark多路输出
- Hadoop,Spark[一]:文件输出压缩
- spark 加载多个目录; RDD输出到hdfs文件压缩
- spark 点滴:多路输出,自定义分区
- spark版WordCount(Java),将输出结果排序,并去除输出文件中的括号。
- MultipleOutputFormat多文件输出
- hadoop多文件输出
- hadoop多文件输出
- MapReduce多文件输出
- 简略Spark输出
- awk 输出到多个文件 多路输出
- 关于架构的一点点思考
- iOS CocoaPods使用详细说明
- 有关Java编写GUI界面的文件读取和保存操作
- Android 多击事件
- hadoop分布式安装hbase
- spark多文件输出
- PrintWriter输出到页面中呈现乱码现象解决方案
- Builder(建造者模式)
- AngularJS中$http服务的简单用法
- 欢迎使用CSDN-markdown编辑器
- 魅族推荐平台的架构演进之路
- QT学习笔记:窗口部件
- 如何在Linux VPS上定制自己的Bash Prompt
- Leetcode题解