繁体   English   中英

Spark:读取2个文件上的Iterate

[英]Spark: Read Iterate on 2 files

我需要有关Spark + Java编程的帮助。 这是我的问题:

我在hdfs中有一个大文件,称为A,另一个大文件称为B。基本上,我需要同时遍历第一个文件(A)和第二个文件(B)。 我的意思是这样的(这是伪代码):

a = read.A; //Read record from A
b = read.B; // Read record from B
while( a != EOF )
{
   if ( a > b)
   {
        b= read.B;
        // Write Output in some way
   }
   else
   {
      a= read.A;
       //Write output in some way
   }

}

是否可以使用Spark + Java做类似的事情?

也许您可以使用Apache Spark来做到这一点,但您不应该这样做

发明了诸如Map,Spark,Hadoop等Map Reduce框架,可将大型任务拆分为几个较小的任务,这些任务可以并行执行。 对于任务的处理顺序没有任何保证,因为速度优势部分基于工作节点不必同步状态这一事实。

您的问题不适合,因为:

  • 它需要知道最近读取的值(或者从A或B检索)。 这是一种共享状态。
  • 您无法使读取步骤并行化,因为您无法事先知道是否必须阅读A或B。

如果需要提高性能,则必须寻找其他地方。 尝试找出瓶颈(内存,磁盘访问等)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM