我想在我的Java Spark项目中读取两个包含数据的文本文件,并对这些数据进行一些机器学习分类操作
假设fileZero
和fileOne
是包含以下格式数据的两个文件
>fileZero10 1 9.8 1.2 10.1 0.9....
另一个文件是
>fileOne0.1 40 0.2 38 0 50...
对于fileZero
和fileOne
,每行包含一个由空格分隔的(x,y)元组,并且分别标记为0和1。换句话说,fileZero
中的所有行都被标记为0,而fileOne
中的行标记为1。
我想读取这两个文件,并考虑使用Dataset
对象。如何读取这两个文件,以便之后可以对数据进行分类/逻辑回归操作?
回答:
您可以定义一个POJO对象,并将文件读取到该对象中。
MyObject
public class MyObject {private double x;private double y;private double label;//Getters and setters...}
您可以像这样读取并将文件转换为数据集:
JavaRDD<MyObject> cRDD = spark.read().textFile("C:/Temp/File0.csv").javaRDD() .map(new Function<String, MyObject>() { @Override public MyObject call(String line) throws Exception { String[] parts = line.split(" "); MyObject c = new MyObject(); c.setX(parts[0].trim()); c.setY(parts[1].trim()); c.setLabel(0); return c; } }); Dataset<Row> mainDataset = spark.createDataFrame(cRDD, MyObject.class);
然后您可以使用分类方法…