小文件会分布在Javapairrdd的分区中吗?



这可能是一个愚蠢的问题,但是我无法理解如何在分区中分配文件。我的要求是从HDFS位置读取10000个二进制文件(Bloom Filter持久文件),并通过将数据转换为ByTearRayInputStream分别处理二进制文件。要注意的要点是这些文件是bloom滤波器持续存在的文件,应从文件的开头依次读取到末尾,应将其转换为字节数组,因此该字节数组将用于重组Bloomfilter对象。<<<<<<<<<<<<<<<<<<<<

JavaPairRDD<String, PortableDataStream> rdd = sparkContext.binaryFiles(commaSeparatedfilePaths);
rdd.map(new Function<Tuple2<String, PortableDataStream>, BloomCheckResponse>()

在这里,在代码中,我将v1._1作为filepath和v1._2 portableDataStream将其转换为bytearrayInputStream。每个二进制文件为34 MB。现在的问题是,是否会有一个情况,将部分文件放在一个分区中,而另一部分则在另一个分区中?或者我一直在处理的所有时间,我是否会在单个分区中获取所有文件的所有内容,并且不会划分到其文件中?执行器内存= 4GB,核心= 2,执行者为180。基本上,期望文件应以从头到尾的方式读取文件。

保证每个(file, stream)stream中提供file的完整内容。在没有情况下,数据将在多对之间进行分配,更不用说多个分区了。

您可以安全地用于预期的方案。

相关内容

  • 没有找到相关文章

最新更新