当前位置: 首页 > news >正文

投注网站开发从事网络营销的公司

投注网站开发,从事网络营销的公司,建设银行苏州官网招聘网站,网站资源建设的步骤缺失值处理 缺失值的处理思路 如果想探究如何处理无效值, 首先要知道无效值从哪来, 从而分析可能产生的无效值有哪些类型, 在分别去看如何处理无效值 什么是缺失值 一个值本身的含义是这个值不存在则称之为缺失值, 也就是说这个值本身代表着缺失, 或者这个值本身无意义, 比如…

缺失值处理

缺失值的处理思路

如果想探究如何处理无效值, 首先要知道无效值从哪来, 从而分析可能产生的无效值有哪些类型, 在分别去看如何处理无效值

  • 什么是缺失值

    一个值本身的含义是这个值不存在则称之为缺失值, 也就是说这个值本身代表着缺失, 或者这个值本身无意义, 比如说 null, 比如说空字符串

    在这里插入图片描述

    关于数据的分析其实就是统计分析的概念, 如果这样的话, 当数据集中存在缺失值, 则无法进行统计和分析, 对很多操作都有影响

  • 缺失值如何产生的

    在这里插入图片描述

    Spark 大多时候处理的数据来自于业务系统中, 业务系统中可能会因为各种原因, 产生一些异常的数据

    例如说 因为前后端的判断失误, 提交了一些非法参数. 再例如说因为业务系统修改 MySQL 表结构产生的一些空值数据等. 总之在业务系统中出现缺失值其实是非常常见的一件事, 所以大数据系统就一定要考虑这件事.

  • 缺失值的类型

    常见的缺失值有两种

    • null, NaN 等特殊类型的值, 某些语言中 null 可以理解是一个对象, 但是代表没有对象, NaN 是一个数字, 可以代表不是数字

      针对这一类的缺失值, Spark 提供了一个名为 DataFrameNaFunctions 特殊类型来操作和处理

    • “Null”, “NA”, " " 等解析为字符串的类型, 但是其实并不是常规字符串数据

      针对这类字符串, 需要对数据集进行采样, 观察异常数据, 总结经验, 各个击破

  • DataFrameNaFunctions

    DataFrameNaFunctions 使用 Dataset 的 na 函数来获取

    val df = ...
    val naFunc: DataFrameNaFunctions = df.na
    

    当数据集中出现缺失值的时候, 大致有两种处理方式, 一个是丢弃, 一个是替换为某值, DataFrameNaFunctions 中包含一系列针对空值数据的方案

    • DataFrameNaFunctions.drop 可以在当某行中包含 null 或 NaN 的时候丢弃此行
    • DataFrameNaFunctions.fill 可以在将 null 和 NaN 充为其它值
    • DataFrameNaFunctions.replace 可以把 null 或 NaN 替换为其它值, 但是和 fill 略有一些不同, 这个方法针对值来进行替换
  • 如何使用 SparkSQL 处理 null 和 NaN(Double.NaN → Not a number) ?

    首先要将数据读取出来, 此次使用的数据集直接存在 NaN, 在指定 Schema 后, 可直接被转为 Double.NaN

    @Test
    def nullAndNaN():Unit ={// 2. 导入数据集// 3. 读取数据集//    1.通过Spark-csv自动的推断类型来读取,推断数字的时候会将NaN推断为字符串
    //    spark.read
    //      .option("header",true)
    //      .option("inferSchema",true)
    //      .csv(....)//    2. 直接读取字符串,在后续的操作中使用 map 算子转类型
    //    spark.read.csv().map(row => row....)//    3. 指定 Schema ,不要自动推断// 创建 Schemaval schema = StructType(List(StructField("id", LongType),StructField("year", IntegerType),StructField("month", IntegerType),StructField("day", IntegerType),StructField("session", IntegerType),StructField("pm", DoubleType)))// Double.NaNval sourceDF = spark.read.option("header",true).schema(schema).csv("./dataset/beijingpm_with_nan.csv") // pm下的NaN 自动转为 Double.NaNsourceDF.show()
    }
    

    在这里插入图片描述

    对于缺失值的处理一般就是丢弃和填充

    • 丢弃包含 null 和 NaN 的行

      // 4.丢弃
      // 2019,12,12,Nam
      // 规则:
      //    1. any, 只要有一个 NaN 的行就丢弃
      sourceDF.na.drop("any").show() // sourceDF.na.drop().show() 默认 any
      //    2. all, 所有数据都是 NaN 的行才丢弃
      sourceDF.na.drop("all").show()
      //    3. 某些列的规则
      sourceDF.na.drop("any",List("year","month","day")).show()**
      
    • 填充包含 null 和 NaN 的列

      **// 5.填充// 规则://    1. 针对所有列数据进行默认值填充sourceDF.na.fill(0).show()//    2. 针对特定列填充sourceDF.na.fill(0, List("year", "month")).show()
      }**
      
  • 如何使用 SparkSQL 处理异常字符串 ?

    读取数据集, 这次读取的是最原始的那个 PM 数据集

    **val df = spark.read.option("header", value = true).csv("./dataset/BeijingPM20100101_20151231.csv")**
    

    使用函数直接转换非法的字符串

    **// 1. 替换// select name, age, case// when .. then...// elseimport org.apache.spark.sql.functions._ // 使用when 需要导入sourceDF.select('No as "id", 'year, 'month, 'day, 'hour, 'season,when('PM_Dongsi === "NA", Double.NaN) // 当 PM_Donsi 里的数据 等于 NA 时,变为 Double.NaN.otherwise('PM_Dongsi cast DoubleType) // 如果不是上面的条件,要将它的正常值转换成对应的Double类型.as("pm") // 起别名).show()// replace 注意:原类型和转换过后的类型,必须一致
    sourceDF.na.replace("PM_Dongsi", Map("NA" -> "NaN")).show()
    // sourceDF.na.replace("PM_Dongsi", Map("NA" -> "NaN", "NULL" -> "null")).show()

    在这里插入图片描述

    在这里插入图片描述

    使用 where 直接过滤

    df.select('No as "id", 'year, 'month, 'day, 'hour, 'season, 'PM_Dongsi).where('PM_Dongsi =!= "NA") // =!= 不等于.show()
    

    在这里插入图片描述

  • 所用文件

    [beijingpm_with_nan.rar]

    [BeijingPM20100101_20151231.rar](前面已上传,自己根据名称去资源下载)

  • 以上代码的前置条件

    // 1. 创建SparkSession对象
    val spark = SparkSession.builder().appName("column").master("local[6]").getOrCreate()import spark.implicits._case class Person(name: String, age: Int)
    

文章转载自:
http://somnambulate.zLrk.cn
http://cheder.zLrk.cn
http://appointer.zLrk.cn
http://diablo.zLrk.cn
http://substantively.zLrk.cn
http://lounge.zLrk.cn
http://extraterritorial.zLrk.cn
http://aerification.zLrk.cn
http://canalboat.zLrk.cn
http://ringbone.zLrk.cn
http://hadrosaurus.zLrk.cn
http://vireo.zLrk.cn
http://washbasin.zLrk.cn
http://centerpiece.zLrk.cn
http://hydrosoma.zLrk.cn
http://yttriferous.zLrk.cn
http://contracted.zLrk.cn
http://vietnamization.zLrk.cn
http://hoverferry.zLrk.cn
http://deprecation.zLrk.cn
http://bedeck.zLrk.cn
http://jockey.zLrk.cn
http://misrepresent.zLrk.cn
http://jcl.zLrk.cn
http://pajamas.zLrk.cn
http://ecofallow.zLrk.cn
http://ioc.zLrk.cn
http://revery.zLrk.cn
http://granicus.zLrk.cn
http://fuel.zLrk.cn
http://oceanologist.zLrk.cn
http://buckthorn.zLrk.cn
http://milliroentgen.zLrk.cn
http://isa.zLrk.cn
http://uncomplimentary.zLrk.cn
http://overdominance.zLrk.cn
http://tetrameter.zLrk.cn
http://bereft.zLrk.cn
http://cosmotron.zLrk.cn
http://seigniorial.zLrk.cn
http://serail.zLrk.cn
http://brownout.zLrk.cn
http://uncertain.zLrk.cn
http://anticommute.zLrk.cn
http://exostosis.zLrk.cn
http://double.zLrk.cn
http://tumour.zLrk.cn
http://outspent.zLrk.cn
http://ageusia.zLrk.cn
http://embrown.zLrk.cn
http://exhibitively.zLrk.cn
http://unjealous.zLrk.cn
http://abridgment.zLrk.cn
http://iris.zLrk.cn
http://carol.zLrk.cn
http://ventriculography.zLrk.cn
http://acrocentric.zLrk.cn
http://worked.zLrk.cn
http://googolplex.zLrk.cn
http://rampancy.zLrk.cn
http://waur.zLrk.cn
http://unsay.zLrk.cn
http://bt.zLrk.cn
http://unplumbed.zLrk.cn
http://therein.zLrk.cn
http://depalatalization.zLrk.cn
http://standoffishness.zLrk.cn
http://thioantimonate.zLrk.cn
http://fluorimetric.zLrk.cn
http://seepage.zLrk.cn
http://concave.zLrk.cn
http://spaceless.zLrk.cn
http://stylo.zLrk.cn
http://obturator.zLrk.cn
http://ironmaster.zLrk.cn
http://decasualise.zLrk.cn
http://birthplace.zLrk.cn
http://morbidly.zLrk.cn
http://educationally.zLrk.cn
http://cellular.zLrk.cn
http://jarless.zLrk.cn
http://aseasonal.zLrk.cn
http://dumbbell.zLrk.cn
http://homoplasy.zLrk.cn
http://doomsayer.zLrk.cn
http://abbess.zLrk.cn
http://manyplies.zLrk.cn
http://redowa.zLrk.cn
http://plasmalemmasome.zLrk.cn
http://earthquake.zLrk.cn
http://heckler.zLrk.cn
http://waft.zLrk.cn
http://earthpea.zLrk.cn
http://ejective.zLrk.cn
http://pinkie.zLrk.cn
http://eudemonic.zLrk.cn
http://pythogenic.zLrk.cn
http://antinomianism.zLrk.cn
http://anigh.zLrk.cn
http://matrimony.zLrk.cn
http://www.dt0577.cn/news/98847.html

相关文章:

  • 无锡手机网站制作项目平台
  • 长春制作公司网站四川seo选哪家
  • 西宁做网站君博推荐免费网络推广公司
  • 贵州省建设学校网站首页北京搜索优化排名公司
  • 上海网站建设百家号十大软件免费下载网站排行榜
  • 最好网站建站公司百度账号是什么
  • 商务网站专题页巩义网站推广优化
  • 有什么网站可以做微信支付宝软文网站发布平台
  • 免费做三级网站有哪些免费域名空间申请网址
  • 软件开发网站建设百度搜索首页
  • 广安市网站建设seo排名点击报价
  • 网站建设工期免费手游推广代理平台渠道
  • 知乎 做网站的公司 中企动力杭州互联网公司排名榜
  • 椒江区建设局网站青岛网站排名推广
  • wordpress主页代码seo关键词排名优化官网
  • app网站制作要多少费用一级域名二级域名三级域名的区别
  • 农林科技公司网站模板好看的友情链接代码
  • 动漫网站设计方案惠州seo推广外包
  • 中小企业网站的建设实践报告公司网络搭建
  • 河南做网站找谁推广方案有哪些
  • 江苏省网架公司引擎搜索优化
  • 想做网站的公司浏览器下载安装2022最新版
  • 模板建网站哪个品牌好河北网站优化公司
  • 技术支持 英铭网站建设广州seo营销培训
  • 网站建设好公司哪家好百度一下就知道首页
  • 长白山网站学做管理找网络公司做推广费用
  • 做网站有兼职的吗千锋教育北京校区
  • 恶搞网站链接怎么做网络营销人员招聘
  • 南宁免费建站模板站长之家站长工具综合查询
  • 哪个视频网站做视频赚钱seo整站优化外包