如何在预测结果中添加一些自定义字段(即用户ID)?

List localTesting = ... ;//

// I want to add some identifier to each LabeledPoint

DataFrame localTestDF = jsql.createDataFrame(jsc.parallelize(studyData.localTesting), LabeledPoint.class);

DataFrame predictions = model.transform(localTestDF);

Row[] collect = predictions.select("label", "probability", "prediction").collect();

for (Row r : collect) {

// and want to return identifier here.

// so do I save I to database.

int userNo = Integer.parseInt(r.get(0).toString());

double prob = Double.parseDouble(r.get(1).toString());

int prediction = Integer.parseInt(r.get(2).toString());

log.debug(userNo + "," + prob + ", " + prediction);

}

但是当我使用这个类进行localTesting而不是LabeledPoint时,

class NoLabeledPoint extends LabeledPoint implements Serializable {

private static final long serialVersionUID = -2488661810406135403L;

int userNo;

public NoLabeledPoint(double label, Vector features) {

super(label, features);

}

public int getUserNo() {

return userNo;

}

public void setUserNo(int userNo) {

this.userNo = userNo;

}

}

List localTesting = ... ;// set every user'no to the field userNo

// I want to add some identifier to each LabeledPoint

DataFrame localTestDF = jsql.createDataFrame(jsc.parallelize(studyData.localTesting), LabeledPoint.class);

DataFrame predictions = model.transform(localTestDF);

Row[] collect = predictions.select("userNo", "probability", "prediction").collect();

for (Row r : collect) {

// and want to return identifier here.

// so do I save I to database.

int userNo = Integer.parseInt(r.get(0).toString());

double prob = Double.parseDouble(r.get(1).toString());

int prediction = Integer.parseInt(r.get(2).toString());

log.debug(userNo + "," + prob + ", " + prediction);

}

异常抛出

org.apache.spark.sql.AnalysisException: cannot resolve 'userNo' given input columns rawPrediction, probability, features, label, prediction;

at org.apache.spark.sql.catalyst.analysis.package$AnalysisErrorAt.failAnalysis(package.scala:42)

at org.apache.spark.sql.catalyst.analysis.CheckAnalysis$$anonfun$checkAnalysis$1$$anonfun$apply$2.applyOrElse(CheckAnalysis.scala:63)

at org.apache.spark.sql.catalyst.analysis.CheckAnalysis$$anonfun$checkAnalysis$1$$anonfun$apply$2.applyOrElse(CheckAnalysis.scala:52)

at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$transformUp$1.apply(TreeNode.scala:286)

at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$transformUp$1.apply(TreeNode.scala:286)

at org.apache.spark.sql.catalyst.trees.CurrentOrigin$.withOrigin(TreeNode.scala:51)

我的意思是我不仅要获得预测数据(功能,标签,概率……),还要获得我想要的一些自定义字段.例如userNo,user_id等

从结果:predictions.select(“……”)

更新

解决了.一行应该是固定的

DataFrame localTestDF = jsql.createDataFrame(jsc.parallelize(studyData.localTesting), LabeledPoint.class);

DataFrame localTestDF = jsql.createDataFrame(jsc.parallelize(studyData.localTesting), NoLabeledPoint.class);

java集合转labelpoint_java – 向Spark ML LabeldPoint添加自定义字段相关推荐

  1. 用户画像之Spark ML实现

    用户画像之Spark ML实现 1 Spark ML简单介绍 Spark ML是面向DataFrame编程的.Spark的核心开发是基于RDD(弹性分布式数据集),但是RDD,但是RDD的处理并不是非 ...

  2. Spark ML特征的提取、转换和选择

    声明:代码主要以Scala为主,希望广大读者注意.本博客以代码为主,代码中会有详细的注释.相关文章将会发布在我的个人博客专栏<Spark 2.0机器学习>,欢迎大家关注. 一.特征的提取 ...

  3. Spark ml 特征工程

    参考:https://www.jianshu.com/p/e662daa8970a https://blog.csdn.net/qq_34531825/article/details/52415838 ...

  4. 使用spark ml pipeline进行机器学习

    一.关于spark ml pipeline与机器学习 一个典型的机器学习构建包含若干个过程 1.源数据ETL 2.数据预处理 3.特征选取 4.模型训练与验证 以上四个步骤可以抽象为一个包括多个步骤的 ...

  5. Spark ML - 聚类算法

    http://ihoge.cn/2018/ML2.html Spark ML - 聚类算法 1.KMeans快速聚类 首先到UR需要的包: import org.apache.spark.ml.clu ...

  6. dataframe 筛选_Spark.DataFrame与Spark.ML简介

    本文是PySpark销量预测系列第一篇,后面会陆续通过实战案例详细介绍PySpark销量预测流程,包含特征工程.特征筛选.超参搜索.预测算法. 在零售销量预测领域,销售小票数据动辄上千万条,这个量级在 ...

  7. 使用 Spark ML Pipeline 进行机器学习

    Spark ML Pipeline 的引入,是受到 scikit-learn 的启发,虽然 MLlib 已经足够简单实用,但如果目标数据集结构复杂,需要多次处理,或是在学习过程中,要使用多个转化器 ( ...

  8. scala-MLlib官方文档---spark.ml package--ML Pipelines+Collaborative Filtering+Frequent Pattern Mining

    三. ML Pipeline Main concepts in Pipelines(管道中的主要概念) MLlib对用于机器学习算法的API进行了标准化,从而使将多种算法组合到单个管道或工作流中变得更 ...

  9. spark.ml支持算法总结

    文章目录 spark支持算法总结 推荐模型 协同过滤 分类模型 1.逻辑回归 2.决策树 3.朴素贝叶斯 4. 随机森林 5. 梯度提升决策树回归 6. 多层感知器分类 7. 一对多分类 8. 支持向 ...

最新文章

  1. 【MySQL】Java中的 JDBC 编程
  2. 线程类中如何调用service_你真的了解Java多线程吗?
  3. CMD命令查看当前电脑安装.NET Core SDK的版本号
  4. linux alsa 录音程序,Linux下alsa直接录音代码
  5. Linux学习134 Unit 8
  6. C#中采用OLEDB方式来读取EXCEL文件
  7. 快来一起玩转LiteOS组件:RHas
  8. 【汇编】更灵活的定位内存地址方式——and,or命令、SI、DI变址寄存器、直接寻址[idata]、寄存器间接寻址[bx]、寄存器相对寻址[bx+idata]、基址变址寻址、相对基址变址寻址
  9. ubuntu 的挂起与休眠
  10. 京东联盟的开放平台的Python客户端封装
  11. 软件测试周刊(第01期):古德哈特定律
  12. Linux 用ssh远程登录及scp传输文件
  13. Two Sum (I ~ IV)
  14. 2020年白领年终奖报告来了,平均值为7826元
  15. 电脑清灰,你的电脑能有多脏 论清灰的重要性
  16. 买《Python数据分析师:从0基础到数据分析达人》专题视频课程送纸质图书
  17. Django实现注册登录功能
  18. Cat.1和Cat.4的区别
  19. 专业解析CCD和CMOS摄像机哪个更优秀
  20. 我的病毒代码之bat文件 win10系统版

热门文章

  1. mysql中删除数据库中的表格数据恢复_恢复从数据库中删除的表
  2. 基于JAVA+Servlet+JSP+MYSQL的学生信息管理系统
  3. android多个activity共用一个菜单,Android开发之多个Activity跳转(Intent)及菜单用法(menu)...
  4. keil 生成bin找不到afx文件_【学习笔记】Keil不能正确生成.bin文件的解决办法
  5. 自己写的_top、_parent以及对iframe和frameset的理解
  6. 使用Java实现面向对象编程(1)
  7. python学习第一周 模拟登陆
  8. JS-以鼠标位置为中心的滑轮放大功能demo1
  9. UpdatePannelFileUpload
  10. 软件工程个人作业4(课堂练习课堂作业)