spark编程04——关于数据清洗中的各种常见时间格式转换

一.时间戳转化为日期格式:

 val time="1622457251089"
    //TODO 时间转换函数:时间戳 1622457251089
    def replaceTime1(tm:String) :String= {
      import java.text.SimpleDateFormat
      val sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
      val format: String = sf.format(new Date(Long.parseLong(time)))
      format
    }
    println("转化后的时间是:"+replaceTime1(time))

 二.带时区的格式:2021-04-27T11:34:52+08:00

import org.apache.spark.sql.functions.udf
 
//TODO 时间格式转换函数 2021-04-27T11:34:52+08:00
    def replaceTime1(tm:String) :String= {
      val t1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX")
      val t2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
      val t: Date =t1.parse(tm)
      val newtime=t2.format(t)
      newtime
网约车大数据综合项目——基于Spark数据清洗是一个涉及大数据处理和清洗的项目,主要目标是处理和清洗网约车平台产生的海量数据,以便后续的分析和应用。以下是该项目的详细介绍: ### 项目背景 随着网约车服务的普及,平台每天会产生大量的数据,包括乘客的出行记录、司机的接单情况、车辆的运行状态等。这些数据需要进行清洗和处理,以便进行后续的分析和挖掘。 ### 项目目标 1. **数据清洗**:去除无效数据、填补缺失值、纠正错误数据等。 2. **数据转换**:将数据转换为适合分析的形式,例如将时间戳转换为日期格式。 3. **数据存储**:将清洗后的数据存储在适合的数据库或数据仓库中。 4. **数据分析**:对清洗后的数据进行统计分析,生成报表和可视化图表。 ### 技术栈 1. **Apache Spark**:一个快速、通用、可扩展的大数据处理引擎,适合处理大规模数据集。 2. **Hadoop HDFS**:分布式文件系统,用于存储大规模数据。 3. **Hive**:数据仓库工具,用于数据查询和分析。 4. **Python**:编程语言,用于编写数据处理脚本。 5. **SQL**:用于数据查询和分析。 ### 数据清洗步骤 1. **数据导入**:将原始数据导入到Hadoop HDFS中。 2. **数据预处理**:使用Spark进行数据清洗,包括去除无效数据、填补缺失值、纠正错误数据等。 3. **数据转换**:将数据转换为适合分析的形式,例如将时间戳转换为日期格式。 4. **数据存储**:将清洗后的数据存储在Hive数据仓库中。 ### 示例代码 ```python from pyspark.sql import SparkSession from pyspark.sql.functions import col, when, isnan # 创建Spark会话 spark = SparkSession.builder.appName("DataCleaning").getOrCreate() # 读取数据 data = spark.read.csv("hdfs://path/to/input/data.csv", header=True, inferSchema=True) # 数据清洗 # 去除无效数据 data = data.filter(~(col("column1").isNull() | (col("column1") == ""))) # 填补缺失值 data = data.na.fill({"column1": "default_value"}) # 纠正错误数据 data = data.withColumn("column1", when(col("column1") == "error_value", "correct_value").otherwise(col("column1"))) # 数据转换 data = data.withColumn("date_column", col("timestamp_column").cast("date")) # 数据存储 data.write.mode("overwrite").csv("hdfs://path/to/output/data_cleaned.csv") # 关闭Spark会话 spark.stop() ``` ### 总结 网约车大数据综合项目——基于Spark数据清洗是一个复杂而重要的项目,通过使用Spark等大数据处理工具,可以高效地处理和清洗海量数据,为后续的分析和应用提供高质量的数据支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值