使用Apache Spark进行批量文件转换

时间:2016-06-15 17:31:01

标签: scala pdf apache-spark etl tiff

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进行转换/连接?

0 个答案:

没有答案