【问题标题】:Azure Eventhub Multiple ColumnsAzure Eventhub 多列
【发布时间】:2020-01-31 03:55:20
【问题描述】:

我正在学习有关通过 eventthub 将推文流式传输到 Databricks 并通过认知服务进行情绪分析 (link to that) 的 Azure 教程。这很好,但我想对推文的位置进行一些分析。本教程仅将推文的文本(我相信)发送到 eventthub。请注意下面 Scala 代码中的 status.getText()。

while (!finished) {
        val result = twitter.search(query)
        val statuses = result.getTweets()
        var lowestStatusId = Long.MaxValue
        for (status <- statuses.asScala) {
          if(!status.isRetweet()){
            sendEvent(status.getText(), 5000)
          }
          lowestStatusId = Math.min(status.getId(), lowestStatusId)
        }
        query.setMaxId(lowestStatusId - 1)
      }

sendEvent 在这里:

def sendEvent(message: String, delay: Long) = {
      sleep(delay)
      val messageData = EventData.create(message.getBytes("UTF-8"))
      eventHubClient.get().send(messageData)
      System.out.println("Sent event: " + message + "\n")
    }

我是否也可以调用 geoLocation() 并将其发送到 eventthub,以便稍后从 eventthub 中提取给定推文的 geoLocation 和/或文本?

主要想知道 EventData.create() 是否可以以某种方式为同一“行”(单个事件)发送两个“列”(属性)。

【问题讨论】:

    标签: azure databricks azure-eventhub


    【解决方案1】:

    EventData 对象仅传输二进制数据。你在那里放什么完全取决于你。人们经常会创建一个 JSON 结构,将其保存为字符串,然后转换为字节。所以不是

    sendEvent(status.getText(), 5000)
    

    你可以做类似(一些伪代码)

    sendEvent('{"text": "' + status.getText() + '", "location":"' + yourLocation + '"}', 5000)
    

    【讨论】:

      【解决方案2】:

      EventData 对象支持应用程序属性包,您可以根据应用程序和业务逻辑填充小数据以便在接收方快速查找。

      var eventData = new EventData(Encoding.UTF8.GetBytes("Hello EventHub!"));
      
      eventData.Properties["ContosoEventType"] = "some value here";
      

      【讨论】:

      • 非常有趣!当需要阅读它时,我将如何检索它?
      • 属性将在收到的 EventData.Properties 字典中可用。 var propValue = eventData.Properties["ContosoEventType"];
      • 好的,谢谢。我将另一个答案标记为正确,因为这是我使用的(并且有效),但这是另一种有趣的方法。我一定会调查的。谢谢!
      猜你喜欢
      • 2020-03-02
      • 1970-01-01
      • 2020-07-01
      • 2015-01-17
      • 2020-04-26
      • 2015-12-28
      • 1970-01-01
      • 1970-01-01
      • 2022-08-23
      相关资源
      最近更新 更多