apache-spark - 无法在 databricks 上运行 johnsnow OCR 笔记本

标签 apache-spark databricks johnsnowlabs-spark-nlp

所以我试图遵循这个笔记本并让它在 databricks 笔记本上工作:https://github.com/JohnSnowLabs/spark-nlp-workshop/blob/master/jupyter/ocr-spell/OcrSpellChecking.ipynb ;但是,安装完所有软件包后,当我到达

时,我仍然陷入困境
{ // for displaying
val regions = data.select("region").collect().map(_.get(0))
regions.foreach{chunk =>
    println("---------------")
    println(chunk)}
}

错误消息是:

org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 3.0 failed 4 times, most recent failure: Lost task 0.3 in stage 3.0 (TID 51, 10.195.249.145, executor 4): java.lang.NoClassDefFoundError: Could not initialize class net.sourceforge.tess4j.TessAPI

有人知道为什么吗?非常感谢!

最佳答案

要使用 Spark NLP OCR,您需要按照文档所述安装 Tesseract 4.x+。在集群中,您必须在所有节点上都有此功能。但是,如果您只处理 PDF 而不是扫描图像,您可能可以跳过 Tesseract 4.x+ 安装:

import com.johnsnowlabs.nlp.util.io.OcrHelper
val ocrHelper = new OcrHelper()

val df = ocrHelper.createDataset(spark, "/tmp/Test.pdf")

更新:Spark OCR 有一个新文档以及 Databricks 的特殊说明:

https://nlp.johnsnowlabs.com/docs/en/ocr

关于apache-spark - 无法在 databricks 上运行 johnsnow OCR 笔记本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53862505/

相关文章:

scala - CrossValidator 不支持 VectorUDT 作为 spark-ml 中的标签

scala - 将 Tuple2 的值部分(即映射)合并为按 Tuple2 的键分组的单个映射

python - Databricks - Pyspark - 使用动态键处理嵌套的 json

python - Spark-nlp 预训练模型未在 Windows 中加载

scala - Spark 错误 : "ERROR Utils: Exception while deleting Spark temp dir:"

java - 使用 Java 将 zip 文件解压到 HDFS

java - Spark 性能中的 map 操作链

pyspark - 如何将 DLT 目标表定向到 Unity Catalog Metastore

apache-spark - 是否可以将 Spark-NLP 库与 Spark Structured Streaming 结合使用?

johnsnowlabs-spark-nlp - Spark-NLP 预训练管道仅适用于 linux 系统吗?