import org.apache.spark.SparkConf
import org.apache.spark.sql.{DataFrame, SparkSession}
import org.apache.spark.sql.functions._
object turbine_Cleaning {
def main(args: Array[String]): Unit = {
//创建SparkSQL的运行环境
val sparkConf = new SparkConf().setMaster("local[*]").setAppName("Task01")
val spark =SparkSession.builder().config(sparkConf).getOrCreate()
//文件路径
val path = "/data/bigfiles/19b9adb8-8665-468f-b161-f09a038c4ce2.csv"
/********** Begin **********/
// 过滤出有功功率 'ActivePower' 列和无功功率 'ReactivePower' 列大于 0 的数据
// 修改日期 'Date' 列中数据为 'yyyy-MM-dd HH:mm:ss' 格式
// 修改有功功率 'ActivePower' 列、无功功率 'ReactivePower' 列、转子转速 'RotorRPM' 列,将其精度统一设置为小数点后 9 位
// 将环境温度 'AmbientTemperatue' 列、主机箱温度 'MainBoxTemperature' 列、风速 'WindSpeed' 列四舍五入并且保留小数点后 1 位;仅将发电机转速 'GeneratorRPM' 列四舍五入即可
// 清洗订单数据无用列,保留日期 'Date' 列,有功功率 'ActivePower' 列,环境温度 'AmbientTemperatue' 列,发电机转速 'GeneratorRPM' 列,主机箱温度 'MainBoxTemperature' 列,无功功率 'ReactivePower' 列,转子转速 'RotorRPM' 列,涡轮状态 'TurbineStatus' 列,风速 'WindSpeed' 列
// 对获取的数据进行去空操作;并将清洗后的数据存储为 CSV 文件存放至'/root/files'下,字符之间分割符为','
/********** End **********/
spark.close()
}
}第1关:风车数据清洗
100
学习内容
参考答案
记录
评论
任务描述
编程要求
测试说明
任务描述
本关任务:基于平台提供的初始数据集 Turbine_Data.csv( /data/bigfiles/19b9adb8-8665-468f-b161-f09a038c4ce2.csv ),按照下列编程要求完成数据清洗和数据存储工作。
数据说明(清洗前):
字段 说明
Date 日期
ActivePower 有功功率
AmbientTemperatue 环境温度
BearingShaftTemperature 轴承轴温度
Blade1PitchAngle 刀片 1 俯仰角
Blade2PitchAngle 刀片 2 俯仰角
Blade3PitchAngle 刀片 3 俯仰角
ControlBoxTemperature 控制箱温度
GearboxBearingTemperature 变速箱轴承温度
GearboxOilTemperature 变速箱油温
GeneratorRPM 发电机转速
GeneratorWinding1Temperature 发电机绕组 1 温度
GeneratorWinding2Temperature 发电机绕组 2 温度
HubTemperature 集线器温度
MainBoxTemperature 主机箱温度
NacellePosition 摇篮位置
ReactivePower 无功功率
RotorRPM 转子转速
TurbineStatus 涡轮状态
WTG 风力发电机组
WindDirection 风向
WindSpeed 风速
数据集中含有列名,且分隔符为 , 。
部分数据如下所示:
Date,ActivePower,AmbientTemperatue,BearingShaftTemperature,Blade1PitchAngle,Blade2PitchAngle,Blade3PitchAngle,ControlBoxTemperature,GearboxBearingTemperature,GearboxOilTemperature,GeneratorRPM,GeneratorWinding1Temperature,GeneratorWinding2Temperature,HubTemperature,MainBoxTemperature,NacellePosition,ReactivePower,RotorRPM,TurbineStatus,WTG,WindDirection,WindSpeed
2019-07-03 17:20:00+00:00,1724.375756,29.98179389,45.79668656,7.646934817,7.935634389,7.935634389,0,69.92352689,66.35293333,1752.2221,108.8125833,108.339104,39.11450222,38.12821244,345,349.6620656,15.70000456,2,G01,345,10.13141038
2019-07-03 17:30:00+00:00,1719.876495,29.8722224,51.4004874,5.88336812,6.238426305,6.238426305,0,78.9207846,66.650838,1748.91851,110.6371391,110.1370616,44.003815,42.9683575,354,348.7708455,15.6882436,2,G01,354,9.652454225
2019-07-03 17:40:00+00:00,1721.776467,29.77718633,45.64748133,5.600642289,5.675354983,5.675354983,0,70.342879,66.917404,1761.488889,112.1641028,111.6656892,39.11450222,38.24288667,345,350.6697211,15.80790856,2,G01,345,9.913594028
2019-07-03 17:50:00+00:00,1719.185715,29.6936817,51.3619705,6.0005353,6.542133735,6.542133735,0,79.314967,67.1325294,1759.76463,113.2616121,112.7458068,44.003815,43.08125,,348.968216,15.7716449,2,G01,,9.580389325
编程要求
根据提示,在右侧编辑器补充代码,具体要求如下所示:
过滤出有功功率 ActivePower 列和无功功率 ReactivePower 列大于 0 的数据;
修改日期 Date 列中数据为 yyyy-MM-dd HH:mm:ss 格式;
修改有功功率 ActivePower 列、无功功率 ReactivePower 列、转子转速 RotorRPM 列,将其精度统一设置为小数点后 9 位;
将环境温度 AmbientTemperatue 列、主机箱温度 MainBoxTemperature 列、风速 WindSpeed 列四舍五入并且保留小数点后 1 位;仅将发电机转速 GeneratorRPM 列四舍五入即可。
清洗订单数据无用列,保留日期 Date 列,有功功率 ActivePower 列,环境温度 AmbientTemperatue 列,发电机转速 GeneratorRPM 列,主机箱温度 MainBoxTemperature 列,无功功率 ReactivePower 列,转子转速 RotorRPM 列,涡轮状态 TurbineStatus 列,风速 WindSpeed 列;
对获取的数据进行去空操作;并将清洗后的数据存储为 CSV 文件存放至/root/files下,字符之间分割符为,。
数据说明(清洗后)
字段 说明
Date 日期
ActivePower 有功功率
AmbientTemperatue 环境温度
GeneratorRPM 发电机转速
MainBoxTemperature 主机箱温度
ReactivePower 无功功率
RotorRPM 转子转速
TurbineStatus 涡轮状态
WindSpeed 风速
注意:清洗后,数据中保留表头且数据分隔符为,。
部分数据展示(清洗后):
Date,ActivePower,AmbientTemperatue,GeneratorRPM,MainBoxTemperature,ReactivePower,RotorRPM,TurbineStatus,WindSpeed
2018-08-19 17:50:00,1728.174735000,27.1,1755.0,39.9,1.939745794,15.720688300,2,11.5
2018-08-20 03:30:00,1722.660313000,26.2,1749.0,39.3,1.731873479,15.681803330,2,11.0
2018-08-20 03:40:00,1728.820000000,26.4,1767.0,39.7,4.416215175,15.850615670,2,11.1
最新发布