azure - Azure Eventhub 多列
问题描述
我正在阅读有关通过 eventthub 将推文流式传输到 Databricks 的 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)
}
发送事件在这里:
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() 是否可以以某种方式为同一“行”(单个事件)发送两个“列”(属性)。
解决方案
EventData 对象仅传输二进制数据。你在那里放什么完全取决于你。人们经常会创建一个 JSON 结构,将其保存为字符串,然后转换为字节。所以而不是
sendEvent(status.getText(), 5000)
你可以做类似(一些伪代码)
sendEvent('{"text": "' + status.getText() + '", "location":"' + yourLocation + '"}', 5000)
推荐阅读
- android - 如何在谷歌地图 Android SDK 中的两个自定义 JSON mapStyles 之间切换
- python - 为什么 Python 代码会写出奇怪的东西?
- javascript - readyException.js:6 Uncaught TypeError:无法读取未定义的属性“mData”
- python - 在 Python 中使用 Matconvnet 模型或使其与 Python 兼容
- angular - 如何在导入中引用我的配置?
- javascript - 在 React 应用程序中初始化 PerfectScrollbar
- node.js - 如果我想运行 Node.js 应用程序,我需要什么类型的网络托管
- javascript - Papa Parse 缺少字段
- android - 动画列表不适用于自定义可绘制对象
- protractor - 量角器 - 并行测试的无头执行失败