Spark稀疏向量和稠密向量

前言

旁边的小伙一副生无可恋的表情:这是为什么?我的代码和之前写的一样,而且都是从官网copy的,结果怎么是这样子啊,我只是用向量汇编将多列转为一列:

val va = new VectorAssembler()
      .setInputCols(Array("age", "sex", "sign", "province_code",
        "lowest_usage", "three_noes", "product_type", "integrated_package", "master_deputy_card",
        "card_type", "churn_warning_user", "susp_card_user", "conti_pre_package", "prefer_chann",
        "net_card_user", "low_pay_user", "cur_income_month",
        "acc_flow_month", "access_time", "payment_amount"))
      .setOutputCol("features")

结果:

(20,[0,1,2,3,5,6,9,13,16,17,18,19],[5.0,1.0,11.0,23.0,1.0,2.0,1.0,3.0,8.0,9.0,7.0,5.0])

这是什么鬼啊?我要的是类似于官网那种数组型的:

[0.5909090909090909,2.0,0.14566181127295755,0.01953125,3.0,0.9754444302340454,0.544428452891636,51.0] 

稀疏向量和稠密向量

概念
简单的总结:
一个向量(1.0,0.0,3.0)它有2中表示的方法
密集:[1.0,0.0,3.0] 其和一般的数组无异
稀疏:(3,[0,2],[1.0,3.0]) 其表示的含义(向量大小,序号,值) 序号从0开始
这个时候小伙应该明白了,原来spark为了效率将有的向量以稀疏向量进行显示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SunnyRivers

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值