1. package Spark_MLlib
  2.  
  3. import org.apache.spark.ml.feature.{IndexToString, StringIndexer}
  4. import org.apache.spark.sql.SparkSession
  5.  
  6. object 特征变换_IndexToString {
  7. val spark=SparkSession.builder().master("local").appName("IndexToString").getOrCreate()
  8. import spark.implicits._
  9. def main(args: Array[String]): Unit = {
  10. val df=spark.createDataFrame(Seq(
  11. (0,"log"),
  12. (1,"text"),
  13. (2,"text"),
  14. (3,"soyo"),
  15. (4,"text"),
  16. (5,"log"),
  17. (6,"log"),
  18. (7,"log")
  19. )).toDF("id","label")
  20. val model=new StringIndexer().setInputCol("label").setOutputCol("label_index").fit(df)
  21. val indexed=model.transform(df)
  22. indexed.createOrReplaceTempView("soyo")
  23. spark.sql("select * from soyo ").show()
  24. spark.sql("select distinct label,label_index from soyo ").show() //去重
  25. //把标签索引的一列重新映射回原有的字符型标签
  26. val converter=new IndexToString().setInputCol("label_index").setOutputCol("original_index")
  27. val converted=converter.transform(indexed)
  28. converted.show()
  29.  
  30. }
  31. }

结果:

+---+-----+-----------+
| id|label|label_index|
+---+-----+-----------+
|  0|  log|        0.0|
|  1| text|        1.0|
|  2| text|        1.0|
|  3| soyo|        2.0|
|  4| text|        1.0|
|  5|  log|        0.0|
|  6|  log|        0.0|
|  7|  log|        0.0|
+---+-----+-----------+

+-----+-----------+
|label|label_index|
+-----+-----------+
| soyo|        2.0|
| text|        1.0|
|  log|        0.0|
+-----+-----------+

+---+-----+-----------+--------------+
| id|label|label_index|original_index|
+---+-----+-----------+--------------+
|  0|  log|        0.0|           log|
|  1| text|        1.0|          text|
|  2| text|        1.0|          text|
|  3| soyo|        2.0|          soyo|
|  4| text|        1.0|          text|
|  5|  log|        0.0|           log|
|  6|  log|        0.0|           log|
|  7|  log|        0.0|           log|
+---+-----+-----------+--------------+

特征变化--->索引到标签的转换(IndexToString)的更多相关文章

  1. css块级标签,行内标签,行内块标签的转换(2)

            css块级标签,行内标签,行内块标签的转换 版权声明 本文原创作者:雨点的名字 作者博客地址:https://home.cnblogs.com/u/qdhxhz/ 在基础1中,我详细讲 ...

  2. 特征变化--->标签到索引的转换(StringIndexer)

    package Spark_MLlib import org.apache.spark.ml.feature.StringIndexer import org.apache.spark.sql.Spa ...

  3. 特征变化--->特征向量中部分特征到类别索引的转换(VectorIndexer)

    VectorIndexer: 倘若所有特征都已经被组织在一个向量中,又想对其中某些单个分量进行处理时,Spark ML提供了VectorIndexer类来解决向量数据集中的类别性特征转换. 通过为其提 ...

  4. 特征变化--->标签到向量的转换(OneHotEncoder)

    一.One-Hot Encoding     One-Hot编码,又称为一位有效编码,主要是采用位状态寄存器来对个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效.     在实 ...

  5. flask的jinja2过滤器使用:遍历索引指定标签class属性,实现样式变化

    在flask项目中实现上图效果,采用使用自定义过滤器的形式对 span 标签的 class 指定. 1.定义过滤器 # common.py def do_index_class(index): &qu ...

  6. java把html标签字符转换成普通字符(反转换成html标签)

    package net.jasonjiang.web; import org.junit.Test; import org.springframework.web.util.HtmlUtils; /* ...

  7. HTML中的行级标签和块级标签 《转换》

    1.html中的块级标签 显示为“块”状,浏览器会在其前后显示折行.常用的块级元素包括: <p>, <ul>,<table>,<h1~h6>等. 2.h ...

  8. html标签快速转换思想方法

    function htmlencode(s){ var div = document.createElement('div'); div.appendChild(document.createText ...

  9. spark机器学习从0到1特征变换-标签和索引的转化(十六)

      一.原理 在机器学习处理过程中,为了方便相关算法的实现,经常需要把标签数据(一般是字符串)转化成整数索引,或是在计算结束后将整数索引还原为相应的标签. Spark ML 包中提供了几个相关的转换器 ...

随机推荐

  1. Python Web开发

    参考原文 Python廖雪峰 WSGI接口 WSGI(Web Server Gateway Interface)是一个接口,用来屏蔽底部的细节(如TCP的建立连接,HTTP原始请求和响应格式等).WS ...

  2. 关于DEV-c++ 运行窗口闪退的解决办法

    因为程序默认运行结束自动关闭,所以运行窗口会被秒关,反复下载了很多遍也没有解决. 上网看过许多博客后,有好多方法,总结一下: ①在return 0:前加getchar():(getchar():是得到 ...

  3. [Luogu] P3701 「伪模板」主席树

    题目背景 byx和手气君都非常都非常喜欢种树.有一天,他们得到了两颗奇怪的树种,于是各自取了一颗回家种树,并约定几年后比一比谁种出来的树更加牛x. 题目描述 很快,这棵树就开花结果了.byx和手气君惊 ...

  4. Python面向对象之面向对象基本概念

    面向过程和面向对象概念 过程和函数:过程类似于函数,只能执行,但是没有返回结果:函数不仅能执行,还能返回结果. 面向过程和面向对象 基本概念 面向过程-怎么做 把完成某一个需求的所有步骤从头到尾逐步实 ...

  5. 腾讯云:基于 Ubuntu 搭建 VNC 远程桌面服务

    基于 Ubuntu 搭建 VNC 远程桌面服务 前言 任务时间:5min ~ 10min 必要知识 本教程假设您已学习以下 Ubuntu 基本操作: 连接 SSH 执行命令 编辑文件 如果还没有掌握 ...

  6. 腾讯云,体验域名注册解析与SSL证书

    体验域名注册解析与SSL证书 购买域名 任务时间:30min ~ 60min 在腾讯云上购买域名 首先需要在腾讯云上购买域名, 点击以下链接可以观看购买操作的指引 如何在腾讯云上购买域名 域名解析 域 ...

  7. 洛谷 1821 [USACO07FEB]银牛派对Silver Cow Party

    [题解] 其实解法 #include<cstdio> #include<cstring> #include<algorithm> #define LL long l ...

  8. List lambda 排序

    Comparator<PromotionRule> comparator = Comparator.comparing(PromotionRule::getCreatedTime); pr ...

  9. git命令大杂烩

    查看版本库中的文件: git ls-files添加到暂存区: git add filesName|\folderName(循环递归) git add .(添加当前目录下的所有文件包括子目录,如果添加文 ...

  10. 九度oj 题目1066:字符串排序

    题目1066:字符串排序 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6487 解决:2670 题目描述: 输入一个长度不超过20的字符串,对所输入的字符串,按照ASCII码的大小从小到 ...