我写了这样一个Map:
@Override
protected void map(VarLongWritable userId, RecommendedItemsWritable recommendations, Context ctx) throws IOException,
InterruptedException {
List<RecommendedItem> items = recommendations.getRecommendedItems();
for (RecommendedItem item : items) {
long userID = Long.valueOf(userId.toString().trim());
System.out.println(userID);
ctx.write(new LongWritable(userID), new Text(item.getItemID() + "," + item.getValue()));
}
}
它生成了以下内容:
1 ,105,3.8652005
1 ,106,3.7047918
1 ,104,3.6800702
2 ,106,2.7261393
2 ,105,2.4083052
2 ,107,2.0
3 ,106,3.5539715
3 ,102,3.4113002
3 ,103,3.323024
4 ,107,4.674651
4 ,105,4.371781
4 ,102,4.0743575
5 ,107,3.754705
实际上,我只想将生成的文件加载到配置单元表中。但是对于选项卡空间,配置单元表中的值是错误的。
那么有没有办法删除文件中的制表符空间呢?
1条答案
按热度按时间xxslljrj1#
我不认为有办法删除键和值之间的制表符空间。但是,如果不需要缩减器,则只需将所有信息放入Map器输出的键中:
将Map输出键的类型更改为文本。