Как использовать createpairedStream в MQTTUtils? - PullRequest
0 голосов
/ 05 марта 2019

Я не могу использовать

MQTTUtils.createPairedStream ()

в Скале?

Как указать список тем в качестве параметров? Я перепробовал все способы, такие как словарь, список, кортежи, но это не сработало. А потом я попытался в Python, в то время он показывает ошибку, как

Процесс шлюза Java завершился перед отправкой драйверу его номера порта

1 Ответ

1 голос
/ 05 марта 2019

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-адрес брокера и массив тем.

...