typeerror:“javapackage”对象不可调用

nhaq1z21  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(665)

我在尝试使用sparkstreaming、python运行单词计数示例时遇到以下错误。
不知道如何进行。下面是我正在运行的命令和错误。

/opt/spark/bin/spark-submit --jars spark-streaming_2.10-2.0.0.jar test_kafka.py broker.txt "localhost:2181:MyTopic"

Error:  
  Traceback (most recent call last):
      File "/home/ubuntu/kafka/libs/test_kafka.py", line 21, in <module>
        kvs = KafkaUtils.createDirectStream(ssc, [topic], {"metadata.broker.list": brokers})
      File "/opt/spark/python/lib/pyspark.zip/pyspark/streaming/kafka.py", line 122, in createDirectStream
      File "/opt/spark/python/lib/pyspark.zip/pyspark/streaming/kafka.py", line 195, in _get_helper
    TypeError: 'JavaPackage' object is not callable
o4hqfura

o4hqfura1#

您得到的错误来自您正在使用的jar包。它与spark/kafka版本不匹配,因此崩溃。
我刚刚检查了spark(2.4.4)和kafka的最新版本,以下包命令可以工作:

`--packages org.apache.spark:spark-streaming-kafka-0-8_2.11:2.0.2`

因此,请尝试以下命令: /opt/spark/bin/spark-submit --packages org.apache.spark:spark-streaming-kafka-0-8_2.11:2.0.2 test_kafka.py broker.txt "localhost:2181:MyTopic" 问题是如何选择每次正确的套餐。文件包格式应为: groupId:artifactId:version 在上述示例中:
groupid:总是org.apache.spark
artifactid:从spark文档中获取最新信息。在本例中,我选择了:spark-streaming-kafka-0-8u2.11
版本:spark版本。在这里我选择了2.0.2。它不是最新的,但它与我正在使用的spark版本2.4.4具有向后兼容性。

相关问题