mapreduce-pojoMap

j0pj023g  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(271)

我在hdfs系统中有一个文件,它是与销售数据相关的3个表的连接输出(销售标题、项目详细信息、投标详细信息)。
该文件将包含所有三个表中的列。
如果有3个项目和1投标,我将有6行的交易。因此,文件中将有6行具有相同的事务编号。我可以在mapper中读取这些内容,并创建一个包含所有字段的dto
现在我想用这个扁平的dto构造复杂的dto结构。是否有任何pojoMap框架可用于此,它是否支持从普通dtoMap到复杂结构。
结构

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

}
w51jfk4q

w51jfk4q1#

从平面dto到复杂dto的转换是纯java的东西。一旦你写了它,它就一直这样。从复杂的dto到json,您可以使用任何jsonjava解析器,比如jackson或gson。
挑战可能是,一旦在json中有了这种一对多Map(dto复杂结构),您就应该了解ElasticSearch是如何管理这些关系的。我和solr一起工作(类似于ElasticSearch)。他们在solr中有子文档概念。
另外,在更高的层次上,如果您的ElasticSearch客户机是基于java的,那么您可以直接从平面结构转到es客户机,跳过json。

相关问题