2019独角兽企业重金招聘Python工程师标准>>>

/*
参考资料:
http://spark.apache.org/docs/2.3.2/sql-programming-guide.html
https://blog.csdn.net/dreamer2020/article/details/51284789
https://blog.csdn.net/supersalome/article/details/78849581*/import org.apache.spark.ml.feature.{Imputer, StandardScaler}
import org.apache.spark.ml.feature.{StringIndexer, OneHotEncoderEstimator}
import org.apache.spark.ml.feature.VectorAssembler
import org.apache.spark.ml.classification.LogisticRegression
import org.apache.spark.ml.{Pipeline, PipelineModel}
import org.apache.spark.ml.evaluation.BinaryClassificationEvaluator
import org.apache.spark.ml.tuning.{ParamGridBuilder, CrossValidator}val titanicDFCsv  = (spark.read.format("csv").option("sep", ",").option("inferSchema", "true").option("header", "true").load("/titanic_data/train.csv"))/*scala> titanicDFCsv.printSchema
root|-- PassengerId: integer (nullable = true)|-- Survived: integer (nullable = true)|-- Pclass: integer (nullable = true)|-- Name: string (nullable = true)|-- Sex: string (nullable = true)|-- Age: double (nullable = true)|-- SibSp: integer (nullable = true)|-- Parch: integer (nullable = true)|-- Ticket: string (nullable = true)|-- Fare: double (nullable = true)|-- Cabin: string (nullable = true)|-- Embarked: string (nullable = true)*/  //统计Cabin取值分布情况/*scala> titanicDFCsv.groupBy("Cabin").agg(count("Cabin") as "cnts").sort(desc("cnts")).show()
+-----------+----+
|      Cabin|cnts|
+-----------+----+
|         G6|   4|
|C23 C25 C27|   4|
|    B96 B98|   4|
|    C22 C26|   3|
|          D|   3|
|       E101|   3|
|         F2|   3|
|        F33|   3|
|        B22|   2|
|        C65|   2|
|        B18|   2|
|         E8|   2|
|        D35|   2|
|       C126|   2|
|B51 B53 B55|   2|
|        B20|   2|
|      F G73|   2|
|        C78|   2|
|    B58 B60|   2|
|        C83|   2|
+-----------+----+
only showing top 20 rows*/titanicDFCsv.filter("Cabin is null").select("Cabin").show()
/*
scala> titanicDFCsv.filter("Cabin is null").select("Cabin").count()
res7: Long = 687
*///统计Cabin字段缺失值个数
/*
scala> titanicDFCsv.filter($"Cabin".isNull).count()
res46: Long = 687
*/scala> titanicDFCsv.filter($"Cabin".isNull).show
+-----------+--------+------+--------------------+------+----+-----+-----+----------------+-------+-----+--------+
|PassengerId|Survived|Pclass|                Name|   Sex| Age|SibSp|Parch|          Ticket|   Fare|Cabin|Embarked|
+-----------+--------+------+--------------------+------+----+-----+-----+----------------+-------+-----+--------+
|          1|       0|     3|Braund, Mr. Owen ...|  male|22.0|    1|    0|       A/5 21171|   7.25| null|       S|
|          3|       1|     3|Heikkinen, Miss. ...|female|26.0|    0|    0|STON/O2. 3101282|  7.925| null|       S|
|          5|       0|     3|Allen, Mr. Willia...|  male|35.0|    0|    0|          373450|   8.05| null|       S|
|          6|       0|     3|    Moran, Mr. James|  male|null|    0|    0|          330877| 8.4583| null|       Q|
|          8|       0|     3|Palsson, Master. ...|  male| 2.0|    3|    1|          349909| 21.075| null|       S|
|          9|       1|     3|Johnson, Mrs. Osc...|female|27.0|    0|    2|          347742|11.1333| null|       S|
|         10|       1|     2|Nasser, Mrs. Nich...|female|14.0|    1|    0|          237736|30.0708| null|       C|
|         13|       0|     3|Saundercock, Mr. ...|  male|20.0|    0|    0|       A/5. 2151|   8.05| null|       S|
|         14|       0|     3|Andersson, Mr. An...|  male|39.0|    1|    5|          347082| 31.275| null|       S|
|         15|       0|     3|Vestrom, Miss. Hu...|female|14.0|    0|    0|          350406| 7.8542| null|       S|
|         16|       1|     2|Hewlett, Mrs. (Ma...|female|55.0|    0|    0|          248706|   16.0| null|       S|
|         17|       0|     3|Rice, Master. Eugene|  male| 2.0|    4|    1|          382652| 29.125| null|       Q|
|         18|       1|     2|Williams, Mr. Cha...|  male|null|    0|    0|          244373|   13.0| null|       S|
|         19|       0|     3|Vander Planke, Mr...|female|31.0|    1|    0|          345763|   18.0| null|       S|
|         20|       1|     3|Masselmani, Mrs. ...|female|null|    0|    0|            2649|  7.225| null|       C|
|         21|       0|     2|Fynney, Mr. Joseph J|  male|35.0|    0|    0|          239865|   26.0| null|       S|
|         23|       1|     3|"McGowan, Miss. A...|female|15.0|    0|    0|          330923| 8.0292| null|       Q|
|         25|       0|     3|Palsson, Miss. To...|female| 8.0|    3|    1|          349909| 21.075| null|       S|
|         26|       1|     3|Asplund, Mrs. Car...|female|38.0|    1|    5|          347077|31.3875| null|       S|
|         27|       0|     3|Emir, Mr. Farred ...|  male|null|    0|    0|            2631|  7.225| null|       C|
+-----------+--------+------+--------------------+------+----+-----+-----+----------------+-------+-----+--------+
only showing top 20 rowstitanicDFCsv.select(titanicDFCsv.columns.map(c => sum(col(c).isNull.cast("int")).alias(c)): _*).show
/*scala> titanicDFCsv.select(titanicDFCsv.columns.map(c => sum(col(c).isNull.cast("int")).alias(c)): _*).show
+-----------+--------+------+----+---+---+-----+-----+------+----+-----+--------+
|PassengerId|Survived|Pclass|Name|Sex|Age|SibSp|Parch|Ticket|Fare|Cabin|Embarked|
+-----------+--------+------+----+---+---+-----+-----+------+----+-----+--------+
|          0|       0|     0|   0|  0|177|    0|    0|     0|   0|  687|       2|
+-----------+--------+------+----+---+---+-----+-----+------+----+-----+--------+
*///对于数值型变量,既可以使用$"Age" > 21, 也可以使用"Age > 21"
titanicDFCsv.filter($"Age" > 21).show()
/*
scala> titanicDFCsv.filter("Age > 21").show()
+-----------+--------+------+--------------------+------+----+-----+-----+----------------+-------+-----+--------+
|PassengerId|Survived|Pclass|                Name|   Sex| Age|SibSp|Parch|          Ticket|   Fare|Cabin|Embarked|
+-----------+--------+------+--------------------+------+----+-----+-----+----------------+-------+-----+--------+
|          1|       0|     3|Braund, Mr. Owen ...|  male|22.0|    1|    0|       A/5 21171|   7.25| null|       S|
|          2|       1|     1|Cumings, Mrs. Joh...|female|38.0|    1|    0|        PC 17599|71.2833|  C85|       C|
|          3|       1|     3|Heikkinen, Miss. ...|female|26.0|    0|    0|STON/O2. 3101282|  7.925| null|       S|
|          4|       1|     1|Futrelle, Mrs. Ja...|female|35.0|    1|    0|          113803|   53.1| C123|       S|
|          5|       0|     3|Allen, Mr. Willia...|  male|35.0|    0|    0|          373450|   8.05| null|       S|
|          7|       0|     1|McCarthy, Mr. Tim...|  male|54.0|    0|    0|           17463|51.8625|  E46|       S|
|          9|       1|     3|Johnson, Mrs. Osc...|female|27.0|    0|    2|          347742|11.1333| null|       S|
|         12|       1|     1|Bonnell, Miss. El...|female|58.0|    0|    0|          113783|  26.55| C103|       S|
|         14|       0|     3|Andersson, Mr. An...|  male|39.0|    1|    5|          347082| 31.275| null|       S|
|         16|       1|     2|Hewlett, Mrs. (Ma...|female|55.0|    0|    0|          248706|   16.0| null|       S|
|         19|       0|     3|Vander Planke, Mr...|female|31.0|    1|    0|          345763|   18.0| null|       S|
|         21|       0|     2|Fynney, Mr. Joseph J|  male|35.0|    0|    0|          239865|   26.0| null|       S|
|         22|       1|     2|Beesley, Mr. Lawr...|  male|34.0|    0|    0|          248698|   13.0|  D56|       S|
|         24|       1|     1|Sloper, Mr. Willi...|  male|28.0|    0|    0|          113788|   35.5|   A6|       S|
|         26|       1|     3|Asplund, Mrs. Car...|female|38.0|    1|    5|          347077|31.3875| null|       S|
|         31|       0|     1|Uruchurtu, Don. M...|  male|40.0|    0|    0|        PC 17601|27.7208| null|       C|
|         34|       0|     2|Wheadon, Mr. Edwa...|  male|66.0|    0|    0|      C.A. 24579|   10.5| null|       S|
|         35|       0|     1|Meyer, Mr. Edgar ...|  male|28.0|    1|    0|        PC 17604|82.1708| null|       C|
|         36|       0|     1|Holverson, Mr. Al...|  male|42.0|    1|    0|          113789|   52.0| null|       S|
|         41|       0|     3|Ahlin, Mrs. Johan...|female|40.0|    1|    0|            7546|  9.475| null|       S|
+-----------+--------+------+--------------------+------+----+-----+-----+----------------+-------+-----+--------+
only showing top 20 rows*///此处的等号有2个,注意跟"||"、&&结合使用时候等号的差别(有三个等号)
/*
scala> titanicDFCsv.filter("Age == 21").show()
+-----------+--------+------+--------------------+------+----+-----+-----+-----------------+-------+-----+--------+
|PassengerId|Survived|Pclass|                Name|   Sex| Age|SibSp|Parch|           Ticket|   Fare|Cabin|Embarked|
+-----------+--------+------+--------------------+------+----+-----+-----+-----------------+-------+-----+--------+
|         38|       0|     3|Cann, Mr. Ernest ...|  male|21.0|    0|    0|       A./5. 2152|   8.05| null|       S|
|         52|       0|     3|Nosworthy, Mr. Ri...|  male|21.0|    0|    0|       A/4. 39886|    7.8| null|       S|
|         57|       1|     2|   Rugg, Miss. Emily|female|21.0|    0|    0|       C.A. 31026|   10.5| null|       S|
|         73|       0|     2|Hood, Mr. Ambrose Jr|  male|21.0|    0|    0|     S.O.C. 14879|   73.5| null|       S|
|        103|       0|     1|White, Mr. Richar...|  male|21.0|    0|    1|            35281|77.2875|  D26|       S|
|        107|       1|     3|Salkjelsvik, Miss...|female|21.0|    0|    0|           343120|   7.65| null|       S|
|        116|       0|     3|Pekoniemi, Mr. Ed...|  male|21.0|    0|    0|STON/O 2. 3101294|  7.925| null|       S|
|        121|       0|     2|Hickman, Mr. Stan...|  male|21.0|    2|    0|     S.O.C. 14879|   73.5| null|       S|
|        174|       0|     3|Sivola, Mr. Antti...|  male|21.0|    0|    0|STON/O 2. 3101280|  7.925| null|       S|
|        392|       1|     3|Jansson, Mr. Carl...|  male|21.0|    0|    0|           350034| 7.7958| null|       S|
|        403|       0|     3|Jussila, Miss. Ma...|female|21.0|    1|    0|             4137|  9.825| null|       S|
|        409|       0|     3|Birkeland, Mr. Ha...|  male|21.0|    0|    0|           312992|  7.775| null|       S|
|        422|       0|     3| Charters, Mr. David|  male|21.0|    0|    0|       A/5. 13032| 7.7333| null|       Q|
|        437|       0|     3|"Ford, Miss. Dool...|female|21.0|    2|    2|       W./C. 6608| 34.375| null|       S|
|        492|       0|     3| Windelov, Mr. Einar|  male|21.0|    0|    0| SOTON/OQ 3101317|   7.25| null|       S|
|        495|       0|     3|Stanley, Mr. Edwa...|  male|21.0|    0|    0|        A/4 45380|   8.05| null|       S|
|        502|       0|     3| Canavan, Miss. Mary|female|21.0|    0|    0|           364846|   7.75| null|       Q|
|        624|       0|     3|Hansen, Mr. Henry...|  male|21.0|    0|    0|           350029| 7.8542| null|       S|
|        625|       0|     3|"Bowen, Mr. David...|  male|21.0|    0|    0|            54636|   16.1| null|       S|
|        628|       1|     1|Longley, Miss. Gr...|female|21.0|    0|    0|            13502|77.9583|   D9|       S|
+-----------+--------+------+--------------------+------+----+-----+-----+-----------------+-------+-----+--------+
only showing top 20 rows
*///对字符型变量进行过滤
scala> titanicDFCsv.filter($"Cabin".equalTo("E101")).show()
+-----------+--------+------+--------------------+------+----+-----+-----+------+-----+-----+--------+
|PassengerId|Survived|Pclass|                Name|   Sex| Age|SibSp|Parch|Ticket| Fare|Cabin|Embarked|
+-----------+--------+------+--------------------+------+----+-----+-----+------+-----+-----+--------+
|        124|       1|     2| Webber, Miss. Susan|female|32.5|    0|    0| 27267| 13.0| E101|       S|
|        304|       1|     2| Keane, Miss. Nora A|female|null|    0|    0|226593|12.35| E101|       Q|
|        718|       1|     2|"Troutt, Miss. Ed...|female|27.0|    0|    0| 34218| 10.5| E101|       S|
+-----------+--------+------+--------------------+------+----+-----+-----+------+-----+-----+--------+//逻辑连接符 &&(并)、||(或)
/*
scala> titanicDFCsv.filter($"Cabin".equalTo("E101")&&$"Age">21).show()
+-----------+--------+------+--------------------+------+----+-----+-----+------+----+-----+--------+
|PassengerId|Survived|Pclass|                Name|   Sex| Age|SibSp|Parch|Ticket|Fare|Cabin|Embarked|
+-----------+--------+------+--------------------+------+----+-----+-----+------+----+-----+--------+
|        124|       1|     2| Webber, Miss. Susan|female|32.5|    0|    0| 27267|13.0| E101|       S|
|        718|       1|     2|"Troutt, Miss. Ed...|female|27.0|    0|    0| 34218|10.5| E101|       S|
+-----------+--------+------+--------------------+------+----+-----+-----+------+----+-----+--------+
*///统计Cabin取值为"E101"且Age取值为27的记录
/*
scala> titanicDFCsv.filter($"Cabin".equalTo("E101")&&$"Age"===27.0).show()
+-----------+--------+------+--------------------+------+----+-----+-----+------+----+-----+--------+
|PassengerId|Survived|Pclass|                Name|   Sex| Age|SibSp|Parch|Ticket|Fare|Cabin|Embarked|
+-----------+--------+------+--------------------+------+----+-----+-----+------+----+-----+--------+
|        718|       1|     2|"Troutt, Miss. Ed...|female|27.0|    0|    0| 34218|10.5| E101|       S|
+-----------+--------+------+--------------------+------+----+-----+-----+------+----+-----+--------+
*///统计Cabin取值为"E101"或Age取值为27的记录,注意数值型变量有三个等号
/*
scala> titanicDFCsv.filter($"Cabin".equalTo("E101")||$"Age"===27.0).show()
+-----------+--------+------+--------------------+------+----+-----+-----+----------------+-------+-----+--------+
|PassengerId|Survived|Pclass|                Name|   Sex| Age|SibSp|Parch|          Ticket|   Fare|Cabin|Embarked|
+-----------+--------+------+--------------------+------+----+-----+-----+----------------+-------+-----+--------+
|          9|       1|     3|Johnson, Mrs. Osc...|female|27.0|    0|    2|          347742|11.1333| null|       S|
|         42|       0|     2|Turpin, Mrs. Will...|female|27.0|    1|    0|           11668|   21.0| null|       S|
|        124|       1|     2| Webber, Miss. Susan|female|32.5|    0|    0|           27267|   13.0| E101|       S|
|        147|       1|     3|"Andersson, Mr. A...|  male|27.0|    0|    0|          350043| 7.7958| null|       S|
|        217|       1|     3|Honkanen, Miss. E...|female|27.0|    0|    0|STON/O2. 3101283|  7.925| null|       S|
|        222|       0|     2|Bracken, Mr. James H|  male|27.0|    0|    0|          220367|   13.0| null|       S|
|        304|       1|     2| Keane, Miss. Nora A|female|null|    0|    0|          226593|  12.35| E101|       Q|
|        322|       0|     3|    Danoff, Mr. Yoto|  male|27.0|    0|    0|          349219| 7.8958| null|       S|
|        378|       0|     1|Widener, Mr. Harr...|  male|27.0|    0|    2|          113503|  211.5|  C82|       C|
|        552|       0|     2|Sharp, Mr. Perciv...|  male|27.0|    0|    0|          244358|   26.0| null|       S|
|        608|       1|     1|Daniel, Mr. Rober...|  male|27.0|    0|    0|          113804|   30.5| null|       S|
|        621|       0|     3| Yasbeck, Mr. Antoni|  male|27.0|    1|    0|            2659|14.4542| null|       C|
|        682|       1|     1|  Hassab, Mr. Hammad|  male|27.0|    0|    0|        PC 17572|76.7292|  D49|       C|
|        718|       1|     2|"Troutt, Miss. Ed...|female|27.0|    0|    0|           34218|   10.5| E101|       S|
|        725|       1|     1|Chambers, Mr. Nor...|  male|27.0|    1|    0|          113806|   53.1|   E8|       S|
|        805|       1|     3|Hedman, Mr. Oskar...|  male|27.0|    0|    0|          347089|  6.975| null|       S|
|        822|       1|     3|   Lulic, Mr. Nikola|  male|27.0|    0|    0|          315098| 8.6625| null|       S|
|        824|       1|     3|  Moor, Mrs. (Beila)|female|27.0|    0|    1|          392096| 12.475| E121|       S|
|        867|       1|     2|Duran y More, Mis...|female|27.0|    1|    0|   SC/PARIS 2149|13.8583| null|       C|
|        887|       0|     2|Montvila, Rev. Ju...|  male|27.0|    0|    0|          211536|   13.0| null|       S|
+-----------+--------+------+--------------------+------+----+-----+-----+----------------+-------+-----+--------+
*///统计Cabin取值为空或Age取值为空的记录
/*
scala> titanicDFCsv.filter($"Cabin".isNull||$"Age".isNull).count()
res47: Long = 706
*/

转载于:https://my.oschina.net/kyo4321/blog/2994649

对Titanic公开数据集进行缺失值统计相关推荐

  1. 机器学习和数据科学中常用的公开数据集(含计算机视觉最全数据集汇总)

    数据集查找器 Google Dataset Search:与Google Scholar的工作方式类似,Dataset Search 可以让你在任何托管的地方找到数据集,无论是出版商的网站,还是数字图 ...

  2. 数据挖掘公开数据集【汇总】

    公开数据集指的是不同的公司.组织公开的用于机器学习.深度学习.人工智能等方向大规模数据集合.以下数据集可用于数据分析.数据挖掘和机器学习等大数据场景下的测试和学习. 按照数据工作的不同应用主题方向,分 ...

  3. MaxCompute SQL大数据公开数据集实战

    MaxCompute公开数据集简介 目前阿里云MaxCompute已经免费向全部用户开放了多种公用数据集,包括: 股票价格数据 房产信息 影视及其票房数据 TPC-DS数据集 这些公开数据现已免费开放 ...

  4. 23个优秀的机器学习训练公开数据集,一文全知道!

    作者 | Nikola M. Zivkovic   转自AI前线 译者 | 王强 策划 | 凌敏 对于学习机器学习的朋友,一般都会用到那些常用的机器学习数据集,这里一篇文章一网打尽,大家可以一次性下载 ...

  5. 各领域公开数据集下载 | 资源

    金融 交通 商业 推荐系统 医疗健康 图像数据 视频数据 音频数据 自然语言处理 社会数据 处理后的科研和竞赛数据 1 金融 **美国劳工部统计局官方发布数据:**http://dataju.cn/D ...

  6. 网络流量领域公开数据集及工具库

    本博客持续更新,收集平常读论文时提高的公开数据集和工具库. 工具库 流量解析 个人喜欢用flowconainer库,使用python解析原始pcap流量,直接pip 按照即可. 使用文档见gitHub ...

  7. MEG公开数据集整理

    关注"心仪脑"查看更多脑科学知识的分 关键词:MEG.公开数据.资源推荐 本期推文是 Public Neuroscience Dataset 系列主题的第四期内容.这期推文编者整理 ...

  8. 【各个领域公开数据集查找和下载】【定期更新】

    各个领域公开数据集查找和下载 写在前面的话 网站 博客 领域 金融 交通 商业 推荐系统 医疗健康 图像数据 综合图像 场景图像 Web标签图像 人形轮廓图像 视觉文字识别图像 特定一类事物图像 材质 ...

  9. 石油相关公开数据集(免费下载)

    Petrol/Gas 全球汽油/天然气价格 背景描述 全球汽油/天然气价格 数据说明 包含按国家/地区划分的汽油消费量的世界份额.每加仑价格.每升价格以及相应的巴基斯坦卢比价格(兑换率 1 美元 = ...

最新文章

  1. 写在那个毕业五年的日子
  2. Linux计划任务Crontab介绍
  3. SAP Spartacus当前产品主数据数据格式的一个例子
  4. 筛选染色体连续区域的策略
  5. 11月30在spring mvc中使用Validator框架和文件上传
  6. int转为string类型方法
  7. css按钮大小固定,在CSS中创建一个固定宽度的按钮
  8. apache的rewrite规则来实现URL末尾是否带斜杠
  9. java实现工单派发_编写官方微信支付 Java SDK 的同学领下工单!
  10. [转帖]我们是OIer、
  11. IPv6Tools:IPv6安全审计框架
  12. SQL Server不允许保存更改【解决】
  13. Windows运行及cmd常用命令
  14. 估值3000亿,中国最神秘电商公司,征服美国年轻人
  15. 黑客红客骇客红客蓝客飞客是什么?有什么区别?(学习资料)
  16. Flutter开发一个云音乐APP(包含接口地址,亲测可用)
  17. 【简单】字符串中最长元音字符串的长度
  18. 反算坐标方位角小程序(c#)
  19. Java数组转集合之Arrays.asList()用法
  20. Linux虚拟机配置NAT模式上网时,ping不通百度等网站但能ping通局域网ip解决办法

热门文章

  1. caffe与卷积神经网络
  2. 解决AJAX请求使PHP反应时间过长的问题
  3. Csdn修改账户手机绑定问题
  4. 一个工程师对潘多拉开发板的使用体验
  5. Rust实战系列-基本语法
  6. 重新定义智能空调,TCL发布智能空调新战略及产品阵容
  7. dash 机器人 Android,用于 Dash 和 Dot 机器人的Blockly
  8. 用python如何画出好看的地图
  9. 【一年一个小知识】如何往kindle阅读器里传书?
  10. 计算机英语阅读短文,计算机经 典英语短文阅读.pdf