首页 > 解决方案 > TypeError:“JavaPackage”对象在 google 协作中不可调用

问题描述

我正在学习 apache spark,我在 google colab 上运行了以下代码。

#installed based upon https://colab.research.google.com/github/JohnSnowLabs/spark-nlp-workshop/blob/master/jupyter/quick_start_google_colab.ipynb#scrollTo=lNu3meQKEXdu

import os

# Install java
!apt-get install -y openjdk-8-jdk-headless -qq > /dev/null
!wget -q "https://downloads.apache.org/spark/spark-3.1.1/spark-3.1.1-bin-hadoop2.7.tgz" > /dev/null
!tar -xvf spark-3.1.1-bin-hadoop2.7.tgz > /dev/null
!pip install -q findspark

os.environ["SPARK_HOME"] = "/content/spark-3.1.1-bin-hadoop2.7"
os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64"
os.environ["PATH"] = os.environ["JAVA_HOME"] + "/bin:" + os.environ["PATH"]
! java -version

# Install spark-nlp and pyspark
! pip install spark-nlp==3.0.0 pyspark==3.1.1


import sparknlp
spark = sparknlp.start()

from sparknlp.base import DocumentAssembler
documentAssembler = DocumentAssembler().setInputCol(text_col).setOutputCol('document')

我收到以下错误。我该如何解决

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-48-535b177b526b> in <module>()
      4 
      5 from sparknlp.base import DocumentAssembler
----> 6 documentAssembler = DocumentAssembler().setInputCol(text_col).setOutputCol('document')

4 frames
/usr/local/lib/python3.7/dist-packages/pyspark/ml/wrapper.py in _new_java_obj(java_class, *args)
     64             java_obj = getattr(java_obj, name)
     65         java_args = [_py2java(sc, arg) for arg in args]
---> 66         return java_obj(*java_args)
     67 
     68     @staticmethod

TypeError: 'JavaPackage' object is not callable

标签: javapythonapache-sparkgoogle-colaboratory

解决方案


正如我在上一条评论中提到的:

通过您拥有的 spark 数据框中的列名称更改 text_col,按其名称记录您可以添加 .setCleanupMode("clean_mode") 有关更多详细信息,您可以参考此链接:https://spark.apache。 org/docs/latest/ml-features

documentAssembler = DocumentAssembler \
                   .setInputCol("text_col") \               
                   .setOutputCol("document")         
                   


推荐阅读