使用 Spark 高效读取 PDF/文本/Word 文件

问题描述 投票:0回答:2

我正在对我的数据进行 NLP(自然语言处理)处理。数据采用文件形式,可以是 PDF/Text/Word/HTML 类型。这些文件存储在本地磁盘上的嵌套目录结构中。

我的基于 Java 的独立 NLP 解析器可以读取输入文件,从中提取文本并对提取的文本进行 NLP 处理。

我正在转换基于 Java 的 NLP 解析器以在 Spark 集群上执行它。我知道 Spark 可以从一个目录中读取多个文本文件并转换为 RDD 以便进一步处理。我的输入数据不仅是文本文件,而且是多种不同的文件格式。

我的问题是:如何在基于 Java 的 Spark 程序中有效地读取输入文件(PDF/Text/Word/HTML),以便在 Spark 集群中处理这些文件。

java apache-spark hdfs file-format
2个回答
1
投票

文件可以通过

读取
sparkContext.binaryFiles()

然后可以被解析器处理。


0
投票

对于 PDF 文档,我们现在有适用于 Apache Spark 的自定义开源 PDF 数据源

from pyspark.sql import SparkSession

spark = SparkSession.builder \
    .master("local[*]") \
    .appName("SparkPdf") \
    .config("spark.jars.packages", "com.stabrise:spark-pdf-spark35_2.12:0.1.11") \
    .getOrCreate()

df = spark.read.format("pdf") \
    .option("imageType", "BINARY") \
    .option("resolution", "200") \
    .option("pagePerPartition", "2") \
    .option("reader", "pdfBox") \
    .option("ocrConfig", "psm=11") \
    .load("path to the pdf file(s)")

df.select("path", "document").show()
© www.soinside.com 2019 - 2024. All rights reserved.