java集合转labelpoint_java – 向Spark ML LabeldPoint添加自定义字段
如何在预测结果中添加一些自定义字段(即用户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添加自定义字段相关推荐
- 用户画像之Spark ML实现
用户画像之Spark ML实现 1 Spark ML简单介绍 Spark ML是面向DataFrame编程的.Spark的核心开发是基于RDD(弹性分布式数据集),但是RDD,但是RDD的处理并不是非 ...
- Spark ML特征的提取、转换和选择
声明:代码主要以Scala为主,希望广大读者注意.本博客以代码为主,代码中会有详细的注释.相关文章将会发布在我的个人博客专栏<Spark 2.0机器学习>,欢迎大家关注. 一.特征的提取 ...
- Spark ml 特征工程
参考:https://www.jianshu.com/p/e662daa8970a https://blog.csdn.net/qq_34531825/article/details/52415838 ...
- 使用spark ml pipeline进行机器学习
一.关于spark ml pipeline与机器学习 一个典型的机器学习构建包含若干个过程 1.源数据ETL 2.数据预处理 3.特征选取 4.模型训练与验证 以上四个步骤可以抽象为一个包括多个步骤的 ...
- Spark ML - 聚类算法
http://ihoge.cn/2018/ML2.html Spark ML - 聚类算法 1.KMeans快速聚类 首先到UR需要的包: import org.apache.spark.ml.clu ...
- dataframe 筛选_Spark.DataFrame与Spark.ML简介
本文是PySpark销量预测系列第一篇,后面会陆续通过实战案例详细介绍PySpark销量预测流程,包含特征工程.特征筛选.超参搜索.预测算法. 在零售销量预测领域,销售小票数据动辄上千万条,这个量级在 ...
- 使用 Spark ML Pipeline 进行机器学习
Spark ML Pipeline 的引入,是受到 scikit-learn 的启发,虽然 MLlib 已经足够简单实用,但如果目标数据集结构复杂,需要多次处理,或是在学习过程中,要使用多个转化器 ( ...
- scala-MLlib官方文档---spark.ml package--ML Pipelines+Collaborative Filtering+Frequent Pattern Mining
三. ML Pipeline Main concepts in Pipelines(管道中的主要概念) MLlib对用于机器学习算法的API进行了标准化,从而使将多种算法组合到单个管道或工作流中变得更 ...
- spark.ml支持算法总结
文章目录 spark支持算法总结 推荐模型 协同过滤 分类模型 1.逻辑回归 2.决策树 3.朴素贝叶斯 4. 随机森林 5. 梯度提升决策树回归 6. 多层感知器分类 7. 一对多分类 8. 支持向 ...
最新文章
- 【MySQL】Java中的 JDBC 编程
- 线程类中如何调用service_你真的了解Java多线程吗?
- CMD命令查看当前电脑安装.NET Core SDK的版本号
- linux alsa 录音程序,Linux下alsa直接录音代码
- Linux学习134 Unit 8
- C#中采用OLEDB方式来读取EXCEL文件
- 快来一起玩转LiteOS组件:RHas
- 【汇编】更灵活的定位内存地址方式——and,or命令、SI、DI变址寄存器、直接寻址[idata]、寄存器间接寻址[bx]、寄存器相对寻址[bx+idata]、基址变址寻址、相对基址变址寻址
- ubuntu 的挂起与休眠
- 京东联盟的开放平台的Python客户端封装
- 软件测试周刊(第01期):古德哈特定律
- Linux 用ssh远程登录及scp传输文件
- Two Sum (I ~ IV)
- 2020年白领年终奖报告来了,平均值为7826元
- 电脑清灰,你的电脑能有多脏 论清灰的重要性
- 买《Python数据分析师:从0基础到数据分析达人》专题视频课程送纸质图书
- Django实现注册登录功能
- Cat.1和Cat.4的区别
- 专业解析CCD和CMOS摄像机哪个更优秀
- 我的病毒代码之bat文件 win10系统版
热门文章
- mysql中删除数据库中的表格数据恢复_恢复从数据库中删除的表
- 基于JAVA+Servlet+JSP+MYSQL的学生信息管理系统
- android多个activity共用一个菜单,Android开发之多个Activity跳转(Intent)及菜单用法(menu)...
- keil 生成bin找不到afx文件_【学习笔记】Keil不能正确生成.bin文件的解决办法
- 自己写的_top、_parent以及对iframe和frameset的理解
- 使用Java实现面向对象编程(1)
- python学习第一周 模拟登陆
- JS-以鼠标位置为中心的滑轮放大功能demo1
- UpdatePannelFileUpload
- 软件工程个人作业4(课堂练习课堂作业)