我有一个格式为pairRDD的
(1, float[])
(2, float[])
...
然后我将其展平为新的对RDD:
(1,float1)
(1,float2)
...
(2,float1)
(2,float2)
...
...
我了解到,我无法使用Integer和Float编写Hadoop顺序文件,因此我将它们转换为(IntWritable,FloatWritable)。然后:
pairRDD.coalesce(1).saveAsNewAPIHadoopFile(outputPath.toString() + ".seq", IntWritable.class, FloatWritable.class, SequenceFileOutputFormat.class);
我期望输出文件会比文本文件小得多。我正在向该文件写入字符串(我正在手动将(int,float)对格式化为String,例如将括号和逗号附加到数字之后),所以我认为使用Integers和Floats会减小输出大小。
我是否以错误的方式理解了这个概念?还是我做错了什么?
我的目标是得到一个小的hadoop文件。