Hadoop 在MapReduce SequenceFileOutputFormat输出中设置键值分隔符

Hadoop 在MapReduce SequenceFileOutputFormat输出中设置键值分隔符,hadoop,mapreduce,output,Hadoop,Mapreduce,Output,My Mapreduce()作业输出是在SequenceFileOutputFormat中使用 以制表符分隔(文本,可长写)。我要用逗号分隔(等) 我尝试过使用config\u mr.set(“mapreduce.output.key.field.separator”、“,”)但这没有帮助 对于SequenceFileOutputFormat,是否有类似于mapreduce.textoutputformat.separator的内容 还是我必须实现RecordWriter 注意:如果可能,请给我

My Mapreduce()作业输出是在
SequenceFileOutputFormat
中使用 以制表符分隔(文本,可长写)。我要用逗号分隔(等)

我尝试过使用
config\u mr.set(“mapreduce.output.key.field.separator”、“,”)但这没有帮助

对于
SequenceFileOutputFormat
,是否有类似于
mapreduce.textoutputformat.separator的内容

还是我必须实现RecordWriter


注意:如果可能,请给我指一个包含所有已定义属性的列表。

SequenceFileOutputFormat不输出文本。它输出一些特殊格式的序列文件来存储这些对。所以它里面没有分隔符。因此,我认为您指的是键中的分隔符(类型为Text)。但是密钥是由代码输出的。那么你为什么不能控制分隔符呢?@zsxwing My
的形式是
a | b | c | d
可写的
。早些时候,我在我的
本身中包含了我的
值,并将实际的
保持为
可写的
。然后这就是
sqooped
|
作为分隔符。但是我想理想地使用
LongWritable
作为value,因为它是一个数字。我目前的输出类似于
a | b | c | d123
。我不能使用
空格
作为
的分隔符,因为它可能在数据中包含空格实际上,序列文件中的键可以是任何可写的。序列文件中没有分隔符概念。你能用
ArrayWritable
作为你的钥匙吗?例如,
ArrayWritable key=newarraywritable(Text.class);key.set(新文本[]{新文本(“a”)、新文本(“b”)、新文本(“c”)}