我使用jdbctemplate查询配置单元,然后将结果写入.csv文件。我基本上只是生成一个对象列表,然后将该列表蒸汽化,将每条记录写入文件。我会喜欢流的结果,因为他们从Hive回来,并写入文件,而不是等待得到整个事情,然后处理它。有人能给我指一下正确的方向吗?谢谢!
private List<Avs> queryAvsData(String asSql) {
List<Avs> llistAvs = new ArrayList<Avs>();
List<Map<String, Object>> rows = hiveJdbcTemplate.queryForList(asSql);
Iterator<Map<String, Object>> it = rows.iterator();
while (it.hasNext()) {
Map<String, Object> row = it.next();
Avs laAvs = Avs.builder()
.make((String) row.get("make"))
.model((String) row.get("model"))
.build();
llistAvs.add(laAvs);
}
return llistAvs;
}
1条答案
按热度按时间fxnxkyjh1#
看起来没有内置的解决方案,但你可以做到。基本上,您将现有功能 Package 在迭代器中,并使用拆分器将其转换为流。以下是一篇关于这个主题的博文:
代码实现了spring的resultsetextractor接口,它是一个单一的抽象方法(sam)接口,允许使用lambda表达式来实现它。
该实现将sql结果集 Package 在迭代器中,使用spliterators和streamsupport实用程序类构造流,并将其应用于获取行集流并返回泛型结果的函数。