python - 类型错误 : 'JavaPackage' object is not callable

标签 python hadoop apache-spark pyspark spark-streaming

我在尝试使用 spark streaming,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

最佳答案

您收到的错误来自您正在使用的 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 :我的主题"

问题是如何每次都选择正确的包。 包的格式应该是:

groupId:artifactId:version

在上面的例子中:

groupId:始终为 org.apache.spark

artifactId:从 spark 文档中获取最新的。在这种情况下,我选择了:spark-streaming-kafka-0-8_2.11

版本:spark版本。这里我选择了2.0.2。它不是最新的,但它与我正在使用的 spark 版本 2.4.4 具有向后兼容性。

关于python - 类型错误 : 'JavaPackage' object is not callable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39196815/

相关文章:

python - 调用 groupby 函数后如何将您的数据帧设为 "autofill"?

python - 删除 :memory: 中的数据库文件

hadoop - 在 MapReduce 中以最佳方式执行 HBase 查询

apache-spark - 如何配置检查点以重新部署 Spark 流应用程序?

apache-spark - apache zeppelin : java. lang.NullPointerException

cassandra - Spark Cassandra 连接器 keyBy 和 shuffle

python - 如何将 x、y 坐标编码为来自 Dart 的 python ecdsa VerifyingKey 格式

python - Pandas 获取月底的数据?

hadoop - hive : Replace string/pattern in row if it exists else do nothing

java - Map Reduce 作业从 Windows 提交到 Linux 时失败(Cent OS)