5
计算平均道路速度[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3天前关闭。 我去了数据工程师的工作面试。面试官问我一个问题。他给了我一些情况,并请我设计该系统的数据流。我解决了,但他不喜欢我的解决方案,但我失败了。我想知道您是否有更好的想法来解决这一挑战。 问题是: 我们的系统接收四个数据流。数据包含车辆ID,速度和地理位置坐标。每个车辆每分钟发送一次数据。特定的流与特定的道路,车辆或其他任何东西之间没有任何联系。有一个函数可以接受协调并返回路段名称。我们需要知道每路路段每5分钟的平均速度。最后,我们要将结果写入Kafka。 所以我的解决方案是: 首先将所有数据写入一个Kafka集群,并写入一个主题,然后按纬度的5-6位数字与经度的5-6位数字进行划分。然后通过结构化流读取数据,通过协调为每一行添加路段名称(为此有一个预定义的udf),然后通过路段名称来简化数据。 因为我将Kafka中的数据按协调的前5-6位进行分区,所以在将协调转换为节名称后,无需将大量数据传输到正确的分区,因此可以利用colesce()操作不会触发完全洗牌。 然后计算每个执行者的平均速度。 整个过程每5分钟发生一次,我们将以Append模式将数据写入最终的Kafka接收器。 再次,面试官不喜欢我的解决方案。有人可以建议如何改进它,还是一个完全不同的更好的主意?