栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Pyspark特征工程--StringIndexer

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Pyspark特征工程--StringIndexer

StringIndexer转换器可以把一列类别型的特征(或标签)进行编码,使其数值化。

​ 索引的范围从0开始,该过程可以使得相应的特征索引化,使得某些无法接受类别型特征的算法可以使用。

并提高诸如决策树等机器学习算法的效率。

​ 索引构建的顺序为标签的频率,优先编码频率较大的标签,所以出现频率最高的标签为0号。
如果输入的是数值型的,我们会把它转化成字符型,然后再对其进行编码。

​ 返回的新列的类型为:double

代码如下:

01.生成对象

#%%
from pyspark.sql import SparkSession
from pyspark.ml.feature import StringIndexer
spark = SparkSession.builder.config("spark.driver.host","192.168.1.4")
    .config("spark.ui.showConsoleProgress","false")
    .appName("StringIndexerT").master("local[*]").getOrCreate()

02.模拟数据

from pyspark.sql.types import Row
data = spark.createDataframe([
    Row("hadoop"),
    Row("spark"),
    Row("flink"),
    Row("kafka"),
    Row("java"),
    Row("flink"),
    Row("kafka"),
    Row("python")
],["name"])
data.show()

​ 输出结果:

+------+
|  name|
+------+
|hadoop|
| spark|
| flink|
| kafka|
|  java|
| flink|
| kafka|
|python|
+------+

03.使用StringIndexer转换器,并查看结果:

stringIndexer = StringIndexer(inputCol=data.columns[0],outputCol="ADD")
model = stringIndexer.fit(data)
outdata = model.transform(data)
outdata.show()

​ 输出结果:

+------+---+
|  name|ADD|
+------+---+
|hadoop|3.0|
| spark|4.0|
| flink|0.0|
| kafka|1.0|
|  java|2.0|
| flink|0.0|
| kafka|1.0|
|python|5.0|
+------+---+

04.查看结果的类型:

outdata.printSchema()
spark.stop()

​ 输出结果:

root
 |-- name: string (nullable = true)
 |-- ADD: double (nullable = false)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/759364.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号