跳到主要内容

DataOps博客

欢迎改变的地方

在电子游戏厅数据操作平台上使用Spark ML进行流分析

By 张贴在 工程 2020年4月9日

学习 如何在数据库文件系统(DBFS)上加载以MLeap 包格式存储的串行Spark ML模型, 用它来分类新的, 流数据 流通过电子游戏厅数据操作平台.

在我之前的博客中, 我演示了如何轻松地扩展电子游戏厅变压器的功能 Scala 和PySpark. 如果你没有读过博客 随机森林回归模型, 序列化训练好的模型,  训练Logistic回归NLP模型,我强烈建议在继续之前阅读,因为这个博客是建立在它们之上的.

好吧,电子游戏网址大全开门见山吧!

观察它的行动

如果你想看看实际情况, 签出这个简短的演示视频,虽然没有音频…如果你想知道技术细节,请继续阅读这个博客. 🙂

 

流数据:推特到Kafka

我设计了这个 电子游戏厅数据收集器 管道来接收和转换tweet,并将它们存储在Kafka中. 这个管道是电子游戏网址大全的流数据的主要来源,电子游戏网址大全将在第二个管道中对其进行情绪分析.

管道概述:

  • 摄取
  • 变换 
    • 转换包括使用丢弃已删除和重复的tweet 流选择器,将推特的API返回的tweet数组旋转为使用的单个tweet记录 领域主,使用扁平化嵌套推文结构 场压延机,以及使用。过滤和重命名字段 场剂场重命名.
  • 商店

这里有一个原始的例子 推特搜索API响应 由HTTP客户机源摄取.

这是一个写给卡夫卡的转换推文的例子.

流数据分类:Kafka到Spark ML模型到砖

在我之前的博客中有详细描述, 让电子游戏网址大全假设您已经训练并序列化了MLeap包格式的模型, 并存储在DBFS上,如下所示.

接下来,我设计了这个 电子游戏厅变压器 流水线运行在砖集群上.

管道概述:

  • 摄取
    • 转换后的tweet记录被读取 Apache卡夫卡从的 与第一个管道写入的主题相同.
  • 变换 
    • Scala处理器 加载Spark ML模型(/ dbfs /跑/毫升/ 火花_nlp_model.邮政编码),并对每条推文进行分类. 的值 1 表明 积极的 情绪和 0 表明 情绪. (*请参阅下面的代码片段.)
  • 商店 
    • 每条tweet记录及其分类以Parquet格式存储在DBFS中,以供查询和进一步分析. 在本例中,DBFS位置是 /跑/ nlp /.

下面是插入的Scala代码 Scala 处理器 >> Scala 选项卡 >> Scala代码 section. 

进口火花.值得一提的._
导入scala.集合.可变的.缓冲

导入组织.apache.火花.ml.功能.VectorAssembler
进口毫升.燃烧.包._
进口毫升.燃烧.mleap.火花.Spark支持._
进口毫升.燃烧.mleap.运行时.Mleap支持._
导入组织.apache.火花.ml.包.SparkBundleContext

Var df =输入(0)

如果(df.列.包含(“文本”)){
  //加载MLeap包,对新数据进行预测
  val saveModelZipPath = "/ dbfs /跑/毫升/ 火花_nlp_model ..邮政”
  val 包 = BundleFile("jar:file:" + saveModelZipPath)
  var loaddmleap包 = 包.loadMleapBundle ().得到.根
  包.close ()

  //返回原始的/输入的数据/特性+相应的预测
  输出= loadedMLeapBundle.火花变换 (df.选择(“文本”)).选择(“文本”、“预测”)
其他}{
  输出= df
}

它接收输入数据(帧)如果它包含" text "列(tweet), 加载NLP模型 (“火花_nlp_model.邮政编码”), 将每个tweet. 然后它创建一个新的数据帧,仅包含tweet和它的 分类 存储在“预测”列中. (请注意,您也可以传递/包括输入数据框架中的所有列,而不仅仅是“文本”和“预测”这两个列。.)

分析数据砖

一旦推, 以及它们的分类, 存储在数据ricks文件系统上, 他们准备好查询砖 Notebook.

查询推文及其分类

在这里,我创建了一个数据框架,它读取DBFS位置中的第二个管道输出的所有Parquet文件 /跑/ nlp / 展示了数据的样子.

创建临时表并聚合数据

这里我创建了一个临时表,用于读取存储在其中的相同数据 /跑/ nlp / DBFS位置和显示总数的聚合查询 积极的 微博对 微博.

结构化流

演示视频, 我还展示了如何在砖中创建和运行结构化流查询来自动更新计数(积极和消极情绪tweet的总数),而不必在新数据从第二个管道流入时手动刷新源数据框架.

一个好消息!

根据我的模型和收集的数据,似乎有 更多的 积极的 情绪比 情绪 说到#quarantinelife 标签. 这是一件值得高兴的事! 🙂

老实说,公平地说, it goes without saying that the model accuracy depends on the size 和 quality of the training 和 test datasets as well as 功能 engineering 和 hyperparameter tuning–which isn’t exactly the point of this blog; rather to showcase how 电子游戏厅 DataOps平台 can be used 和 extended 为 variety of use cases.

了解更多关于 电子游戏厅为砖电子游戏厅 DataOps平台 可以在 微软Azure市场 和 AWS市场.

回到顶部

电子游戏网址大全使用cookie来改善您对电子游戏网址大全网站的体验. 单击“允许所有人同意”并继续访问电子游戏网址大全的网站. 隐私政策