Pyspark特征工程--VectorAssembler

VectorAssembler是一个转换器它将给定的列列表组合到一个向量列中

​ 将原始特征和由不同特征变换器生成的特征组合成单个特征向量非常有用

以便训练ML模型如逻辑回归和决策树

​ VectorAssembler接受以下输入列类型:所有数字类型,布尔类型和矢量类型。 在每一行中,输入列的值将按 指定的顺序连接到一个向量中

​ 返回的是一个vector,向量

01.加载模块创建对象

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

02.生成数据,数据格式需要满足前面的要求

from pyspark.sql.types import Row
data = spark.createDataFrame([
    Row(1,2),
    Row(11,12),
    Row(15,16),
    Row(19,20)
],["name","version"])
data.show()

​ 输出结果:

+----+-------+
|name|version|
+----+-------+
|   1|      2|
|  11|     12|
|  15|     16|
|  19|     20|
+----+-------+

03.使用转换器,转换数据

vectorAssembler = VectorAssembler(inputCols=['name', 'version'],outputCol="res")
res = vectorAssembler.transform(data)
res.show()

​ 输出结果:

+----+-------+-----------+
|name|version|        res|
+----+-------+-----------+
|   1|      2|  [1.0,2.0]|
|  11|     12|[11.0,12.0]|
|  15|     16|[15.0,16.0]|
|  19|     20|[19.0,20.0]|
+----+-------+-----------+

04.查看输出列的类型:

res.printSchema()
spark.stop()

​ 输出结果:

root
 |-- name: long (nullable = true)
 |-- version: long (nullable = true)
 |-- res: vector (nullable = true)
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值