spark初步探索

embedded/2024/9/25 8:26:14/

今天我阅读了《基于spark下一代机器学习》这本书,里面spark与sql进行了结合,关于传统领域cv,nlp我认为使用大数据处理并不如python处理方便快捷。学习了里面的基础操作,之前学习的spl也可以进行相对的结合。

在书中我会使用了XGBoost,LightGBM,等模型,并且学习了大数据经i行数据预处理的方法

import org.apache.spark.sql.SparkSession
import org.apache.spark.ml.feature.VectorAssembler
import org.apache.spark.ml.linalg.Vectors
import org.apache.spark.sql.functions._
import ml.dmlc.xgboost4j.scala.{XGBoost, DMatrix}object XGBoostExample {def main(args: Array[String]): Unit = {val spark = SparkSession.builder.appName("XGBoostExample").getOrCreate()// 加载数据集val data = spark.read.option("header", "true").csv("path/to/your/data.csv")// 选择特征和标签val featureCols = data.columns.dropRight(1) // 假设最后一列是标签val assembler = new VectorAssembler().setInputCols(featureCols).setOutputCol("features")val transformedData = assembler.transform(data).select(col("features"), col("label").cast("float"))// 划分训练集和测试集val Array(trainData, testData) = transformedData.randomSplit(Array(0.8, 0.2), seed = 42)// 将数据转换为 DMatrixval dtrain = new DMatrix(trainData.rdd.map(row => (row.getAs[org.apache.spark.ml.linalg.Vector]("features").toArray, row.getAs[Float]("label"))).collect())val dtest = new DMatrix(testData.rdd.map(row => (row.getAs[org.apache.spark.ml.linalg.Vector]("features").toArray, row.getAs[Float]("label"))).collect())// 设置 XGBoost 参数val params = Map("eta" -> 0.1,"max_depth" -> 3,"objective" -> "binary:logistic","silent" -> 1,"nthread" -> 4)// 训练模型val bst = XGBoost.train(dtrain, params, 100)// 进行预测val preds = bst.predict(dtest)// 评估模型val labels = dtest.getLabelval accuracy = preds.zip(labels).count { case (pred, label) => Math.round(pred) == label } / labels.length.toDoubleprintln(s"Accuracy: $accuracy")// 停止 Spark 会话spark.stop()}
}


http://www.ppmy.cn/embedded/116528.html

相关文章

怎样写论文及论文格式?分享4款ai论文生成软件

撰写一篇学术论文是一项复杂而系统的工作,需要从选题、文献综述、研究方法到最终的写作和修改等多个步骤。本文将详细介绍如何写好一篇论文,并推荐四款AI论文生成软件,特别是千笔-AIPassPaper。 如何写好一篇论文 1. 选题与题目表达 选题是…

KOC携手TikTok达人:微内容革命如何重塑品牌传播与消费决策

KOC与TikTok达人通过创作简短而富有创意的“微内容”,不仅迅速抓住了用户的注意力,还引领了一场前所未有的内容营销革命。本文Nox聚星将和大家分析微内容如何成为品牌营销的新载体。 一、微内容的特征与优势 微内容的核心特点在于其简短性。通常&#x…

(done) 声音信号处理基础知识(2) (重点知识:pitch)(Sound Waveforms)

来源:https://www.youtube.com/watch?vbnHHVo3j124 复习物理知识: 声音由物体的振动产生 物体振动会导致空气分支振荡 某一处的空气气压变化会创造一个波 声音是机械波 空气的振荡在空间中传递 能量从空间中的一个点到另一个点 机械波需要媒介&#x…

前端框架的对比和选择

在当今的前端开发领域,有多种流行的前端框架可供选择,如 Vue、React 和 Angular。以下是这些框架的对比以及 Vue 的优势: 一、React 特点: 声明式编程:使用 JSX 语法,使得组件的结构和行为更加清晰。虚拟…

VSCode好用的插件推荐

1. Chinese 将vscode翻译成简体中文 如果安装了依然是英文,请参考如下方法: ctrlshfitp 2. ESLint 自动检查规范 3. Prettier - Code formatter 可以自动调整代码的缩进、换行和空格,确保代码风格统一。通过配置,Prettier可…

Facebook对现代社交互动的影响

自2004年成立以来,Facebook已经成为全球最大的社交媒体平台之一,改变了人们的交流方式和社交互动模式。作为一个数字平台,Facebook不仅为用户提供了分享生活点滴的空间,也深刻影响了现代社交互动的各个方面。本文将探讨Facebook如…

LeetCode从入门到超凡(三)回溯算法

引言 大家好,我是GISer Liu😁,一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年9月学习赛的LeetCode学习总结文档;本文主要讲解回溯算法。💕💕😊 介绍 回溯算法(Back…

腾讯邮箱上传附件卡、慢、无法上传问题处理

1、检查文件中转站容量是否已满 2、建议用户打开链接https://exmail.qq.com/qy_mng_logic/wasmHelper?typehashv2,看是否可以正常访问。(能打开下载就表示可以正常访问) 3、让用户切换到4G或者其他网络再重新上传附件是否会重现问题&#xf…