package Spark_MLlib

import org.apache.spark.ml.feature.{IndexToString, StringIndexer}
import org.apache.spark.sql.SparkSession object 特征变换_IndexToString {
val spark=SparkSession.builder().master("local").appName("IndexToString").getOrCreate()
import spark.implicits._
def main(args: Array[String]): Unit = {
val df=spark.createDataFrame(Seq(
(0,"log"),
(1,"text"),
(2,"text"),
(3,"soyo"),
(4,"text"),
(5,"log"),
(6,"log"),
(7,"log")
)).toDF("id","label")
val model=new StringIndexer().setInputCol("label").setOutputCol("label_index").fit(df)
val indexed=model.transform(df)
indexed.createOrReplaceTempView("soyo")
spark.sql("select * from soyo ").show()
spark.sql("select distinct label,label_index from soyo ").show() //去重
//把标签索引的一列重新映射回原有的字符型标签
val converter=new IndexToString().setInputCol("label_index").setOutputCol("original_index")
val converted=converter.transform(indexed)
converted.show() }
}

结果:

+---+-----+-----------+
| 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. yii 在lnmp下访问问题

    lnmp大坑 /usr/local/nginx/conf/fastcgi.conf  文件里面

  2. 25款css动画库

    http://www.swiper.com.cn/usage/animate/index.html   //swiper https://cssanimation.io/ http://ianlunn ...

  3. 关于dijkstra的小根堆优化

    YY引言 在NOI2018D1T1中出现了一些很震惊的情况,D1T1可以用最短路解决,但是大部分人都在用熟知的SPFA求解最短路.而SPFA的最坏复杂度能够被卡到$O(VE)$.就是边的数量乘以点的数 ...

  4. Struts2学习笔记:DMI,多个配置文件,默认Action,后缀

    动态方法调用有三种方法: 1.同一Action多次映射,每个action标签的method对应要调用的方法. 当要调用的方法多了就会增加struts.xml文件的复杂性. 2.struts.Dynam ...

  5. 06 Python流程控制

    目录: 12) if语句 13) 三目运算 14) while语句 15) break与continue关键字 16) while…else语句 12,if语句        Note: 在一个if语 ...

  6. SQL学习笔记:库和表的创建

    目录 创建和删除数据库 创建和删除表 添加.修改和删除字段 创建和删除数据库 CREATE DATABASE justForLearn; DROP DATABASE justForLearn; 创建和 ...

  7. TensorFlow — 相关 API

    TensorFlow — 相关 API TensorFlow 相关函数理解 任务时间:时间未知 tf.truncated_normal truncated_normal( shape, mean=0. ...

  8. 关于 Neo4j 属性个数的限制

    关于 Neo4j 属性个数的限制 目前累积统计它有34.4亿个节点,344亿的关系,和6870亿条属性. 社区版,Neo4j对 数据库内 节点.关系 上的属性名个数是有限制的.数据库中至多存在687亿 ...

  9. 20180725利用pmm监控管理mysql

    转自:https://www.percona.com/doc/percona-monitoring-and-management/architecture.html 报警机制https://www.p ...

  10. [bzoj2097][Usaco2010 Dec]Exercise 奶牛健美操_贪心_树形dp_二分

    Exercise bzoj-2097 Usaco-2010 Dec 题目大意:题目链接 注释:略. 想法:题目描述生怕你不知道这题在考二分. 关键是怎么验证?我们想到贪心的删边. 这样的策略是显然正确 ...