【问题标题】:How to read text file and convert it to a Dataset in Java Spark?如何读取文本文件并将其转换为 Java Spark 中的数据集?
【发布时间】:2016-12-20 06:57:37
【问题描述】:

我想读入两个带有数据的文本文件,并对我的 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。 如何读取这两个文件,以便稍后我可以对数据进行分类/逻辑回归?

【问题讨论】:

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


    【解决方案1】:

    您可以定义pojo对象并将文件读入对象。

    我的对象

    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);   
    

    然后就可以使用分类方法了……

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-20
      • 1970-01-01
      相关资源
      最近更新 更多