我是Hadoop的新手,但这是我上个月的一个学习项目.
为了保持这种含糊不清以便对他人有用,让我先抛弃基本目标......假设:
我看过多个线程:
还有更多..我也一直在阅读Tom White的Hadoop书.我一直在急切地想要学习这一点.我经常在新API和旧API之间进行交换,这增加了尝试学习这一点的困惑.
许多人指向MultipleOutputs(或旧的api版本),但我似乎无法生成我想要的输出 - 例如,MultipleOutputs似乎不接受"/"来在write()中创建目录结构
创建具有所需输出结构的文件需要采取哪些步骤?目前我有一个WholeFileInputFormat类,以及具有(NullWritable K,ByteWritable V)对的相关RecordReader(如果需要可以更改)
我的地图设置:
public class MapClass extends Mapper<NullWritable, BytesWritable, Text, BytesWritable> {
private Text filenameKey;
private MultipleOutputs<NullWritable, Text> mos;
@Override
protected void setup(Context context) throws IOException, InterruptedException {
InputSplit split = context.getInputSplit();
Path path = ((FileSplit) split).getPath();
filenameKey = new Text(path.toString().substring(38)); // bad hackjob, until i figure …Run Code Online (Sandbox Code Playgroud)