Scala-spark程序案例

本文详细介绍使用Apache Spark进行数据去重、清洗及剔除空值的步骤与代码实现,通过具体示例展示了如何有效处理大数据集,确保数据质量。

1.数据去重

程序代码

import org.apache.spark.{SparkConf, SparkContext}
//数据去重
object quchong {
  def main(args: Array[String]): Unit = {
    val conf=new SparkConf().setAppName("数据去重").setMaster("local")
    val sc=new SparkContext(conf)
    val sj=sc.textFile("数据文件")
    //去除标题行
    val rdd=sj.take(1)
    val text=sj.filter(!rdd.contains(_))
    //数据清洗
    val sj1=text.filter(_.trim().length>0).map(line=>(line.trim,"")).groupByKey().sortByKey().keys.collect()
    sj1.foreach(println)
    sc.stop()
  }
}

剔除空

一行数据有三个空值就丢掉这行数据(并显示剔除多少条数据)

程序代码:

import org.apache.spark.{SparkConf, SparkContext}

import scala.collection.mutable.ListBuffer

object qkz1 {
  def main(args: Array[String]): Unit = {
    val conf=new SparkConf().setAppName("去.").setMaster("local")
    val sc=new SparkContext(conf)
    val text=sc.textFile("数据文件")
    val rdd=text.take(1)
    val line=text.filter(!rdd.contains(_))
    val lslist=line.collect().toList
    val list=ListBuffer.empty ++=lslist
    var tcs=0 //剔除记录数
    for (char <- list){
      val a=char.split("\t")
      var count=0//临时计数
      for (char1 <- a){
        if(char1.trim==""){
          count=count+1
        }
      }
      if(count>1){
        tcs=tcs+1
        list-=char
      }
    }
    val jieguo=sc.parallelize(list)
    jieguo.foreach(println)
    println("剔除记录数:"+tcs.toString)
	sc.stop()
  }
}
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值