Hadoop 在MapReduce SequenceFileOutputFormat输出中设置键值分隔符
My Mapreduce()作业输出是在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 注意:如果可能,请给我
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”)}代码>