模拟生成新能源车辆数据

该文描述了一个程序设计要求,用于每天凌晨3点模拟生成包含车架号、行驶里程等信息的新能源车辆数据,并将其以JSON格式存储到HDFS。数据按天组织,超过100MB时分文件存储,并包含一定比例的重复和前期日期数据。
摘要由CSDN通过智能技术生成


概述

编写一个程序,每天凌晨3点模拟生成当天的新能源车辆数据(字段信息必须包含:车架号、行驶总里程、车速、车辆状态、充电状态、剩余电量SOC、SOC低报警、数据生成时间等)。

要求

1、最终部署时,要将这些数据写到第一题的HDFS中。

2、车辆数据要按天存储,数据格式是JSON格式,另外如果数据文件大于100M,则另起一个文件存。每天的数据总量不少于300M。比如假设程序是2023-01-1 03点运行,那么就将当前模拟生成的数据写入到HDFS的/can_data/2023-01-01文件夹的can-2023-01-01.json文件中,写满100M,则继续写到can-2023-01-01.json.2文件中,依次类推;

3、每天模拟生成的车辆数据中,必须至少包含20辆车的数据,即要含有20个车架号(一个车架号表示一辆车,用字符串表示);

4、每天生成的数据中要有少量(20条左右)重复数据(所有字段都相同的两条数据则认为是重复数据),且同一辆车的两条数据的数据生成时间间隔两秒;

5、每天生成的数据中要混有少量前几天的数据(即数据生成时间不是当天,而是前几天的)。

准备

我们要先部署三个节点
在每台机器上上配置hosts文件,如下:
cat /etc/hosts

192.168.53.4    master
192.168.53.100    slave1
192.168.53.101    slave2

修改IP后重启网卡

systemctl restart network

master的hosts映射配置好后,可以通过scp命令,将master修改好的/etc/hosts文件,同步到slave1、slave2主机上。

scp /etc/hosts root@slave1:/etc

设置免密登录

这里因为master、slave1、slave2三个节点都是从之前的已经安装好Hadoop伪分布式的虚拟机复制得来,而当时已经设置了免密登录,故不需再设置了。

根据概述我们知道,编写的程序主要是用来生成数据的,结果中要呈现不同的字段,要求中存在规定,所以我们先来写一个函数,函数里写明每一个字段的要求,再建立一个空的列表将这些数据循环爬取到列表里,然后返回列表。

生成车辆数据

def generate_data():
    vin_list = ['VIN{}'.format(i) for i in range(1, 21)]  # 车架号列表
    data_list = []
    for vin in vin_list:
        mileage = round(random.uniform(1000, 10000), 2)  # 行驶总里程
        speed = round(random.uniform(0, 120), 2)  # 车速
        status = random.choice(['running', 'stopped'])  # 车辆状态
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值