加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何使用scala规范化或标准化spark中具有多列/变量的数据?

发布时间:2020-12-16 10:05:25 所属栏目:安全 来源:网络整理
导读:我是apache spark和 scala的新手.我有这样的数据集,我从csv文件中取出并使用scala将其转换为RDD. +-----------+-----------+----------+| recent | Freq | Monitor |+-----------+-----------+----------+| 1 | 1234 | 199090|| 4 | 2553| 198613|| 6 | 3232
我是apache spark和 scala的新手.我有这样的数据集,我从csv文件中取出并使用scala将其转换为RDD.

+-----------+-----------+----------+
| recent    | Freq      | Monitor  |
+-----------+-----------+----------+
|        1  |       1234 |   199090|
|        4  |       2553|    198613|
|        6  |       3232 |   199090|
|        1  |       8823 |   498831|
|        7  |       2902 |   890000|
|        8  |       7991 |   081097|
|        9  |       7391 |   432370|
|        12 |       6138 |   864981|
|        7  |       6812 |   749821|
+-----------+-----------+----------+

我想计算z得分值或标准化数据.所以我正在计算每列的z得分,然后尝试将它们组合起来,以便得到标准比例.

这是我计算第一列z分数的代码

val scores1 = sorted.map(_.split(",")(0)).cache
val count = scores.count
val mean = scores.sum / count
val devs = scores.map(score => (score - mean) * (score - mean))
val stddev = Math.sqrt(devs.sum / count)
val zscore = sorted.map(x => math.round((x.toDouble - mean)/stddev))

我如何计算每列?或者还有其他方法来规范化或标准化数据吗?

我的要求是指定等级(或等级).

谢谢

解决方法

如果要标准化列,可以使用Spark MLlib中的 StandardScaler类.数据应采用RDD [Vectors [Double]的形式,其中Vectors是MLlib Linalg包的一部分.您可以选择使用均值或标准差或两者来标准化数据.

import org.apache.spark.mllib.feature.StandardScaler
import org.apache.spark.mllib.linalg.Vectors

val data = sc.parallelize(Array(
    Array(1.0,2.0,3.0),Array(4.0,5.0,6.0),Array(7.0,8.0,9.0),Array(10.0,11.0,12.0)))

// Converting RDD[Array] to RDD[Vectors]
val features = data.map(a => Vectors.dense(a))
// Creating a Scaler model that standardizes with both mean and SD
val scaler = new StandardScaler(withMean = true,withStd = true).fit(features)
// Scale features using the scaler model
val scaledFeatures = scaler.transform(features)

此scaledFeatures RDD包含所有列的Z分数.

希望这个答案有所帮助有关详细信息,请查看文档.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读