从Spark中的CSV文件使用VectorAssembler生成新列

时间:2018-10-24 11:42:05

标签: java apache-spark

我正在尝试从从CSV文件读取的数据集生成features列。 CSV包含如下内容:

+-----+---+---+
|label|  x|  y|
+-----+---+---+
|    0|  1|  1|

我需要将此数据集的值转换为整数,以便VectorAssembler起作用。我这样做是这样的:

    Dataset<Row> dataset = spark.read()
            .format("csv")
            .option("header", "true")
            .load("data.csv");

    dataset = dataset.selectExpr("label", "cast(x as int) x", "cast(y as int) y");

    VectorAssembler assembler = new VectorAssembler()
            .setInputCols(new String[]{"x", "y"})
            .setOutputCol("features");

    dataset = assembler.transform(dataset);

这是正确的方法吗?有效率吗?

0 个答案:

没有答案