查看流媒体概念概述,了解如何使用Spark Structured Streaming摄取Kafka事件,并使用机器学习模型丰富事件。
社交媒体,电子邮件,支持票据,聊天,产品评论和推荐的文本挖掘和分析已成为几乎所有行业垂直行业研究数据模式的宝贵资源,以帮助企业获得洞察力,了解客户,预测和增强客户体验,定制营销活动,并协助决策。
情感分析使用机器学习算法来确定正面或负面文本内容的方式。情绪分析的用例示例包括:
快速了解客户评论的基调:
了解客户喜欢或不喜欢的产品或服务。
了解可能影响新客户购买决策的因素。
为企业提供市场意识。
尽早解决问题
了解股市情绪,以获得对金融信号预测的见解
社交媒体监控
品牌/产品/公司人气/声誉/感知监控
不满意的客户检测监控和警报
营销活动监控/分析
客户服务意见监测/分析
品牌情绪态度分析
客户反馈分析
竞争情绪分析
品牌影响者监控
手动分析客户或潜在客户产生的大量文本是耗时的,机器学习更有效,并且通过流分析,可以实时提供见解。
这是一系列博客中的第二篇,讨论了将流数据与机器学习和快速存储相结合的数据管道的体系结构。在第一部分中,我们使用Spark Machine学习数据管道探索了情绪分析,并保存了情绪分析机器学习模型。第二篇文章将讨论使用保存的情绪分析模型和流数据来对产品情绪进行实时分析,将结果存储在MapR数据库中,并使它们可以快速用于Spark和Drill SQL。
在这篇文章中,我们将讨论以下内容:
流媒体概念概述使用Spark结构化流媒体摄取Kafka事件
使用机器学习模型丰富事件
在MapR数据库中存储事件
使用Apache Spark SQL和Apache Drill查询MapR数据库中快速可用的丰富事件
流媒体概念使用适用于Apache Kafka的MapR事件存储发布 - 订阅事件流
Apache Kafka的MapR事件存储是一个分布式发布 - 订阅事件流系统,它使生产者和消费者能够通过Apache Kafka API以并行和容错的方式实时交换事件。
流表示从生产者到消费者的连续事件序列,其中事件被定义为键值对。
主题是一个逻辑的事件流。主题将事件组织成类别,并将生产者与消费者分离。主题按吞吐量和可伸缩性进行分区。MapR事件存储可以扩展到非常高的吞吐量级别,使用非常适中的硬件可以轻松地每秒传输数百万条消息。
您可以将分区视为事件日志:将新事件附加到末尾,并为其分配一个称为偏移的顺序ID号。
与队列一样,事件按接收顺序传递。
但是,与队列不同,读取时不会删除消息。它们保留在其他消费者可用的分区上。消息一旦发布,就是不可变的,可以永久保留。
在读取消息时不删除消息允许大规模的高性能以及不同消费者针对不同目的(例如具有多语言持久性的多个视图)处理相同消息。
Spark数据集,DataFrame,SQL
Spark数据集是分布在群集中多个节点上的类型化对象的分布式集合。可以使用功能转换(map,flatMap,filter等)和/或Spark SQL来操纵数据集。DataFrame是Row对象的数据集,表示包含行和列的数据表。
Spark结构化流媒体
结构化流是一种基于Spark SQL引擎的可扩展且容错的流处理引擎。通过Structured Streaming,您可以将发布到Kafka的数据视为无界DataFrame,并使用与批处理相同的DataFrame,Dataset和SQL API处理此数据。
随着流数据的不断传播,Spark SQL引擎会逐步并持续地处理它并更新最终结果。
事件的流处理对于实时ETL,过滤,转换,创建计数器和聚合,关联值,丰富其他数据源或机器学习,持久化到文件或数据库以及发布到管道的不同主题非常有用。
Spark结构化流用例示例代码
以下是亚马逊产品评论数据的情绪分析用例的数据处理管道,以检测正面和负面评论。
Amazon产品评论使用Kafka API将 JSON格式的事件发布到MapR事件存储主题。
Spark Streaming应用程序订阅了该主题:
摄取产品评论事件流
使用部署的机器学习模型,通过正面或负面的情绪预测来丰富评论事件
以JSON格式将转换和丰富的数据存储在MapR数据库中。