我想用tika在spark中处理20tb的pdf文件,这样每个pdf文件的每个输入都有一个输出。
我能按顺序做,但要花很多时间。当以并行方式(通过将输入作为包含pdf文件的整个目录)执行时,花费的时间非常少,但输出是包含重叠值的部分文件。有没有什么方法可以让我以一种并行的方式来做,并且每输入一个输出。
下面是我的代码:-
val binRDD = sc.binaryFiles("/data")
val textRDD = binRDD.map(file => {new org.apache.tika.Tika().parseToString(file._2.open( ))}) textRDD.saveAsTextFile("/output/")
1条答案
按热度按时间xqnpmsa81#
获取rdd中的文件名列表,然后在其上并行化,如下所示。我没有运行代码,但可能会工作,或者你可以相应地调整它
编辑:我已经运行了下面的代码,它为我工作