题目:
在给定的数据集中,计算带权重和不带权重的特征向量的均值和方差。
数据:
我们有两个样本,每个样本由一个三维特征向量和一个权重组成。具体数据如下:
- 第一个样本的特征向量是 [2.0, 3.0, 5.0],权重为 1.0。
- 第二个样本的特征向量是 [4.0, 6.0, 7.0],权重为 2.0。
代码实现:
import org.apache.spark.SparkConf
import org.apache.spark.ml.linalg.{Vector, Vectors}
import org.apache.spark.ml.stat.Summarizer._
import org.apache.spark.sql.SparkSession
object SparkTask3 {
def main(args: Array[String]): Unit = {
// 创建Spark配置对象
val conf = new SparkConf().setMaster("local[*]")
val spark = SparkSession.builder().config(conf).appName("task3").getOrCreate()
import spark.implicits._
// 创建数据集DataFrame
val data = Seq(
(Vectors.dense(2.0, 3.0, 5.0), 1.0),
(Vectors.dense(4.0, 6.0, 7.0), 2.0)
)
val df = data.toDF("features", "weight")
// 使用带权重的均值和方差方法计算