如何读取文本文件并将其转换为Java Spark中的数据集?

时间:2016-08-13 10:47:29

标签: java apache-spark machine-learning spark-dataframe apache-spark-mllib

我想在两个带有数据的文本文件中读取并在我的Java Spark项目中对数据运行一些机器学习分类

fileZerofileOne成为包含以下格式的数据的两个文件

>fileZero
10 1 
9.8 1.2 
10.1 0.9
....

另一个文件

>fileOne
0.1 40 
0.2 38 
0 50
...

对于fileZerofileOne,每行包含一个由空格分隔的(x,y)元组,并分别标记为标记为0和1。换句话说,fileZero中的所有行都应标记为0,而fileOne为1.

我想阅读这两个文件,并考虑使用对象Dataset。 如何在两个文件中读取以后我可以对数据运行分类/逻辑回归?

1 个答案:

答案 0 :(得分:2)

您可以定义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);   

然后你可以使用分类方法......