Spark / Scala n00bie在这里......
我有一大堆文档,其页面存储为单独的tif图像。我需要将单个tifs转换并连接成一个PDF文档。即1.tif,2.tif,3.tif - > 123.pdf
我一直在调查使用Spark来实现这一目标。我创建了这样的初始RDD:
val inputTifRDD = sc.binaryFile("file:///some/path/to/lots/of/*tif")
inputTifRDD由以下形式的元组组成:
(fullFilePath: String, data:org.apache.spark.input.PortableDataStream )
然后我应用一个自定义地图函数,将每个tif转换为pdf并返回由以下形式的元组组成的RDD:
(fullFilePath: String, data:com.itextpdf.text.Document)
我现在想对这个RDD应用一个动作,将PDF连接成一个PDF。我不认为减少是可能的,因为连接不是可交换的 - 页面的顺序很重要。
我的问题是如何以正确的顺序影响RDD中元素的串联?文件名包含页码,因此可以使用此信息。或者 - 是否有另一种更好/更有效的方法来与Spark进行转换/连接?