前言:
使用python编写出一个程序,于每天凌晨3点模拟生成当天的新能源车辆数据,数据中包含有各个字段,分别是车架号、行驶总里程、车速、车辆状态、充电状态、剩余电量SOC、SOC低报警、数据生成时间等。将得到的数据保存到 json文件中,然后在HDFS中部署好需要用到的集群,最终将json文件中的数据写入到HDFS。
一、准备Python环境
这里我使用的是Visual Studio Code来编写程序。
这里先导入我们所需要用到的数据库。
import json
import random
import time
import os
(1)Json模块
JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式,通常是以键值对的方式呈现,其简洁和清晰的层次结构使得JSON成为理想的数据交换语言,而在Python中处理JSON格式的模块有json和pickle两个,而json模块是我们要用到的。
json模块和pickle都提供了四个方法:dumps, dump, loads, load
序列化:将python的数据转换为json格式的字符串
反序列化:将json格式的字符串转换成python的数据类型
(2)Random模块
Python标准库中的random函数,可以生成随机浮点数、整数、字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等。
random模块方法说明:
- random.random()函数是这个模块中最常用的方法了,它会生成一个随机的浮点数,范围是在0.0~1.0之间。
- random.uniform()正好弥补了上面函数的不足,它可以设定浮点数的范围,一个是上限,一个是下限。
- random.randint()随机生一个整数int类型,可以指定这个整数的范围,同样有上限和下限值,python random.randint。
- random.choice()可以从任何序列,比如list列表中,选取一个随机的元素返回,可以用于字符串、列表、元组等。
- random.shuffle()如果你想将一个序列中的元素,随机打乱的话可以用这个函数方法。
- random.sample()可以从指定的序列中,随机的截取指定长度的片断,不作原地修改。
(3)Time模块
Python的Time库可以进行时间相关的处理,如访问当前日期和时间,输出不同格式的时间以及等待指定的时间等。下面要介绍本次程序所要用到的方法。
1.time.localtime([sec])
time.localtime([sec])可以将时间戳的秒数转化为时间元组格式,时间元组是另一种表示时间的方式,下面是每个元素的含义
tm_sec: 秒,范围为[0,59]
tm_min: 分, 范围为[0,59]
tm_hour: 小时,范围为[0,23]
tm_mday: