Mapreduce POJO映射

时间:2015-09-23 03:53:52

标签: hadoop mapreduce mapping pojo

我在hdfs系统中有一个文件,它是与销售数据相关的3个表的连接输出。 (销售标题,项目细节,投标细节)。

该文件将包含来自所有三个表的列。

如果有3个项目和1个投标,我将有6行进行交易。 因此,文件中将有6行具有相同的交易号。 我可以在mapper中阅读这个并创建一个包含所有字段的DTO

现在我想用这个扁平的DTO构建复杂的DTO结构。 是否有可用于此的pojo映射框架,它是否支持从普通DTO到复杂结构的maping。

结构

public class PlainDTO{

String tranId;
String processDate;
String itemNumber;
String itemName;
int tenderId;
.......
......


}

从列表中,我需要转换为 以下结构

public class ComplexDTO{

private SlsHeader slsHeader;
private Collection<SlsItems> items;
private Collection<SlsTender> tenderDetails

}

1 个答案:

答案 0 :(得分:1)

从平面DTO到复杂DTO的转换是普通的Java东西。一旦你写了它,它就像那样。从复杂的DTO到json,您可以使用任何JSON-Java解析器,如Jackson或Gson。

挑战可能是,一旦你在json中拥有这个一对多的映射(DTO复杂结构),你应该看到Elastic搜索如何管理这些关系。我曾与Solr合作过(类似于Elastic Search)。他们在Solr有儿童文件概念。

此外,在更高级别,如果您的Elastic搜索客户端是基于Java的,您可以直接从Flat结构转到ES客户端,跳过json。