PySpark:如何在 worker 上安装 linux 命令行工具?

PySpark: How do I install a linux command-line tool on workers?

我正在尝试使用 Linux 命令行工具 'Poppler' 从 pdf 文件中提取信息。我想对几个 Spark worker 上的大量 PDF 执行此操作。我需要使用 Popplers,而不是 PyPDF 或类似的东西。

有谁知道如何在worker上安装Poppler?我知道我可以从 python 中执行命令行调用并获取输出(或获取由 Poppler lib 生成的文件),但我如何将它安装到每个 worker 上?我正在使用 spark 1.3.1 (databricks)。

谢谢!

正确的方法是像安装任何其他 Linux 应用程序一样,在最初设置它们时将其安装在所有工作人员上。正如您已经指出的那样,您可以 shell 从 Python.

中取出

如果出于某种原因这不是一个选项,那么您可以使用 addFile 方法将文件发送给所有工作人员:http://spark.apache.org/docs/latest/api/python/pyspark.html#pyspark.SparkContext.addFile

请注意,后一种方法不处理依赖项(库等)。