-3

我无法使用

MQTTUtils.createPairedStream()

在斯卡拉?

如何将主题列表指定为参数?我尝试了所有方法,如字典、列表、元组,但没有奏效。然后我在python中尝试过,当时它显示了一个错误,比如

Java 网关进程在向驱动程序发送其端口号之前退出

4

1 回答 1

1

Scala 是一种静态类型语言,您提供给方法的参数必须具有特定类型才能编译方法调用。有时方法是重载的,在这种情况下可以提供不同的参数组合,而在 Scala 中,有时某些参数可能具有默认值,在这种情况下根本不需要提供它们。

有几种方法可以确定给定方法可能的参数。您的 IDE 可能会在您键入MQTTUtils.createPairedStream(. 有时库开发人员会发布 API 文档,以易于阅读的格式显示方法签名(包括参数类型和返回值)。如果这些都不是您的选择并且该项目是开源的,您只需查找源代码即可。在这种情况下,您会发现以下内容(请注意,如果您使用不同的版本,您可能需要更改 GitHub 界面中的标签):

  /**
   * Create an input stream that receives messages pushed by a MQTT publisher.
   * @param ssc           StreamingContext object
   * @param brokerUrl     Url of remote MQTT publisher
   * @param topics        Array of topic names to subscribe to
   * @param storageLevel  RDD storage level. Defaults to StorageLevel.MEMORY_AND_DISK_SER_2.
   */
  def createPairedStream(
      ssc: StreamingContext,
      brokerUrl: String,
      topics: Array[String],
      storageLevel: StorageLevel = StorageLevel.MEMORY_AND_DISK_SER_2
    ): ReceiverInputDStream[(String, String)] = {
    new MQTTPairedInputDStream(ssc, brokerUrl, topics, storageLevel)
}

这是八种createPairedStream方法重载中最简单的一种(其余的都采用附加参数)。这表明您需要(按顺序)提供一个StreamingContext、一个代理 URL 和一个主题数组。

于 2019-03-05T11:02:02.070 回答