IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Spark 从某列Vector中提取值作为新列加入DataFrame -> 正文阅读

[大数据]Spark 从某列Vector中提取值作为新列加入DataFrame

Spark 从Vector提取值作为新列加入DataFrame

背景:spark 机器学习模型的输出概率值是一个vector(0的概率和1的概率),现在需要提取出vector的一个值(1的概率)作为新的一列,然后和预测前的字段一起输出到hive
问题:如果直接筛选vector字段输出到hive会报格式错误
解决方案:

  1. 选取需要输出的列名,并筛选出所需要的dataframe
  2. 从某列Vector中提取值和key作为新的dataframe
  3. 合并两个dataframe,输出到hive

代码细节

//XpredictionTest为带有模型预测结果和feature等字段的dataframe
//columnsArr 定义需要筛选的列名
val columnsArr = XpredictionTest.columns.slice(0, 24) :+ XpredictionTest.columns.slice(29, 50)
//提取出对应列名的dataframe
val tmpDf1 = XpredictionTest.select(columnsArr.map(name => col(name)): _*)
// 从probabilities列提取出预测为1的概率
val tmpDf2 = XpredictionTest.select("key", "probabilities").rdd.map(t => {
      val prob = t(1).asInstanceOf[DenseVector](1)
      var newCol = 0
      (t(0).toString, prob)
    }).toDF("key_b", "prob_1")
//按keyjoin
val resDF = tmpDf3.join(tmpDf2,tmpDf3("key")===tmpDf2("key_b"),"inner")

resDF.write.mode("append").format("hive").saveAsTable("xxxx")
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-22 14:16:32  更:2021-07-22 14:17:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/22 23:53:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码