如何将数据集行类型转换为数据集字符串类型



我在java 8中使用spark 2.2。我在 Rowtype 中有一个数据集,我想将此数据集用于 ML 模型,因此

我想在将数据集使用到模型中时将数据集转换为数据集,如下所示错误。

类型不匹配:无法从数据集转换为数据集

我喜欢下面的 scala 解决方案,但我想在 java 中做到这一点。

df.map(row => row.mkString())
val strings = df.map(row => row.mkString()).collect 

首先将行数据集转换为列表,然后将该列表转换为字符串数据集。试试这个

Dataset<Row> df= spark.read()... 
List<String> list = df.as(Encoders.STRING()).collectAsList();
Dataset<String> df1 = session.createDataset(list, Encoders.STRING()); 

如果您计划逐行读取数据集,则可以对数据集使用迭代器:

     Dataset<Row>csv=session.read().format("csv").option("sep",",").option("inferSchema",true).option("escape, """).option("header", true).option("multiline",true).load(users/abc/....);
    for(Iterator<Row> iter = csv.toLocalIterator(); iter.hasNext();) {
        String item = (iter.next()).toString();
        System.out.println(item.toString());    
    }

最新更新