当前位置: 首页 > 知识库问答 >
问题:

高效的Java收集,用于分析CSV文件的输入,该文件包含数百万条记录

胡景澄
2023-03-14

假设我有一个csv文件,其中包含以下格式的证券交易信息:时间戳、名称、价格、数量、账户、买入/卖出。该文件可能有数百万条记录,代表当天的交易活动。文件没有排序,我需要选择保存这些数据的最佳Java集合,以便高效地提供分析。

分析例如: 1)卖出最多的股票2)交易最多的账户3)在一个时间范围内购买最多的股票。

基本上,我需要根据不同的字段对这个列表进行多次排序。

所以经过一点搜索,我发现基于树的集合最适合这个用例。像树桩一样。还有其他更好的收藏吗?

共有1个答案

蒋联
2023-03-14

如果需要按一个参数排序,TreeSet将非常有效。你可以

  1. 创建一个类,如:
    public class Record {
        Calendar timeStamp;
        String name;
        double price;
        //...
    }

为每个任务创建比较器

创建LinkedList(或其他集合)

    List <Record> records=new LinkedList();
    records.sort(yourComparator1);
    records.sort(yourComparator2);
    records.sort(yourComparator3);
 类似资料:
  • 我有一个带有注释的csv文件,其值需要在两个ArrayList之间拆分。例如: 实现这一目标的最佳方式是什么?我是否应该使用一个计数器,每次状态从%变到某个值时递增,反之亦然,然后如果计数器% 2 = 0,那么添加一个新的ArrayList并开始写入它?这是我能想到的唯一办法,但似乎有点笨拙,还有人有更好的主意吗? 编辑:我已经写了实际解析csv值的代码,我不需要帮助,只是想知道如何将值分成两个列

  • 问题内容: 我正在尝试在NetBeans 6.0.1中使用OpenCSV解析.csv文件。我的文件包含一些Unicode字符。当我在输出中写入字符时,字符以其他形式显示,例如(HJ1’-E /;)。当我在记事本中打开此文件时,它看起来还可以。 我使用的代码: 问题答案: 首先,您需要知道文件的编码格式,例如UTF-8或UTF-16。生成此文件的原因是什么? 在那之后,它相对简单- 您需要创建一个包

  • 我想创建一个. bat文件,它将显示文件名以“多哥”开头的每个. csv文件的最后一行。批处理文件将与. csv文件位于同一个文件夹中。要输出应该是:[文件名][最后一行数据] 此批处理文件应始终每5分钟运行和测试. csv文件。

  • 我想用javascript在csv文件的列中写一个字符串。我使用下面的代码,但是它在一列中写入整个字符串。 这就是我如何创建csv fi: 有什么建议吗?

  • 我一直在努力设置一个flink应用程序,该应用程序从csv文件创建。这个文件中的列(列)都是String,但应该将它们转换为Integer、java.sql.time和double。我想要的另一件事是创建包含每天数据的滚动窗口,并对该窗口中列的值进行平均。问题是我不知道它的确切语法。请参阅下面我尝试的代码。最后一部分我有sum(2),但我想计算窗口的平均值。我在文档中没有看到这方面的函数。我需要为

  • 我有数百万个不同标题的csv文件,我想把它们合并到一个大数据框中。 我的问题是我尝试过的解决方案有效,但太慢了!顺便说一句,我可以访问Sparklyr在我的实验室中处理多节点集群,这个大数据工具会有帮助吗? 文件如下所示: 文件1 校长1,校长3,校长5 a、 b,c 文件2 校长4,校长2 e、 f 文件3 校长2,校长6 a, c 我想把它们合并成: 校长1,校长2,校长3,校长4,校长5,校