Uber永世定位体系及时数据说明进程实践!
在下面的代码中,我们行使parseUber函数注册一个用户自界说函数(UDF)来反序列化动静值字符串。我们在带有df1列值的String Cast的select表达式中行使UDF,该值返回Uber工具的DataFrame。 ![]() 行使集群中心ID和位置富厚的Uber工具数据集 VectorAssembler用于转换并返回一个新的DataFrame,个中包括向量列中的纬度和经度要素列。 ![]() ![]() k-means模子用于通过模子转换要领从特性中获取聚类,该要领返回具有聚类ID(标志为猜测)的DataFrame。天生的数据集与先前建设的集群中心数据集(ccdf)毗连,以建设UberC工具的数据集,个中包括与集群中心ID和位置相团结的行程信息。 ![]() ![]() 最后的数据集转换是将独一ID添加到工具以存储在MapR-DB JSON中。createUberwId函数建设一个独一的ID,包括集群ID和反向时刻戳。因为MapR-DB按id对行举办分区和排序,因此行将按簇的ID新旧时刻举办排序。 此函数与map一路行使以建设UberwId工具的数据集。 ![]() 接下来,为了举办调试,我们可以开始吸取数据并将数据作为内存表存储在内存中,然后举办查询。 ![]() 以下是来自 %sqlselect * from uber limit 10 的示例输出: ![]() 此刻我们可以查询流数据,扣问哪段时刻和集群内的搭乘次数最多?(输出表现在Zeppelin notebook中)
SELECT hour(uber.dt) as hr,cid, count(cid) as ct FROM uber group By hour(uber.dt), cid ![]() Spark Streaming写入MapR-DB ![]() 用于Apache Spark的MapR-DB毗连器行使户可以将MapR-DB用作Spark布局化流或Spark Streaming的吸取器。 ![]() 当你处理赏罚大量流数据时,个中一个挑衅是存储位置。对付此应用措施,可以选择MapR-DB JSON(一种高机能NoSQL数据库),由于它具有JSON的可伸缩性和机动易用性。 JSON模式的机动性 MapR-DB支持JSON文档作为本机数据存储。MapR-DB行使JSON文档轻松存储,查询和构建应用措施。Spark毗连器可以轻松地在JSON数据和MapR-DB之间构建及时或批处理赏罚管道,并在管道中操作Spark。 ![]() 行使MapR-DB,表按集群的键范畴自动分区,提供可扩展行和快速读写手段。在此用例中,行键_id由集群ID和反向时刻戳构成,因此表将自动分区,并按最新的集群ID举办排序。 ![]() (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |