Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用于划分数据集的子列表_Java_Partitioning_Bigdata - Fatal编程技术网

Java 用于划分数据集的子列表

Java 用于划分数据集的子列表,java,partitioning,bigdata,Java,Partitioning,Bigdata,我有一个索引高达1亿的列表。假设列表中的每个od列表都是一个文本的句子。我想对这些数据进行分区,以便在不同的线程中进行处理。我使用子列表进行拆分 并将其发送到不同的线程中进行处理。这是划分数据的标准方法吗?如果没有,你能为我推荐一些标准的方法吗 只要您不查看列表或这些子列表中的任何一个,这将起作用。只读处理很好 还有许多其他“大数据”方法可以处理上亿条记录,因为您可能会遇到其他问题: 如果您的程序失败(例如OutOfMemoryError),您可能不想从头开始 您可能希望抛出>1台机器来解决这

我有一个索引高达1亿的列表。假设列表中的每个od列表都是一个文本的句子。我想对这些数据进行分区,以便在不同的线程中进行处理。我使用
子列表
进行拆分
并将其发送到不同的线程中进行处理。这是划分数据的标准方法吗?如果没有,你能为我推荐一些标准的方法吗

只要您不查看列表或这些子列表中的任何一个,这将起作用。只读处理很好

还有许多其他“大数据”方法可以处理上亿条记录,因为您可能会遇到其他问题:

  • 如果您的程序失败(例如OutOfMemoryError),您可能不想从头开始
  • 您可能希望抛出>1台机器来解决这个问题,此时您无法在单个JVM内存中共享数据
  • 在你处理完每个句子后,你是否在构建一些中间结果,然后将其作为第二步处理?您可能需要建立一个步骤管道,在每个步骤之前对数据进行重新分区
  • 你可能会发现你有太多的句子,无法一次将它们全部记在记忆中
这类工作的一个非常常用的工具是。您可以将数据复制到中,对数据运行map reduce作业(或多个作业),然后在完成后将数据从HDFS中复制出来

一种更简单的实现方法是使用数据库,将integer
句子id
列的不同范围分配给不同的线程,并在另一个表中构建输出