如何将Object []强制转换为Row []?

时间:2018-11-28 14:36:37

标签: java apache-spark apache-spark-dataset

我将文件中的JSON数据读取到Dataset中,如下所示(Spark 2.2.2,Java):

Dataset<Row> df = spark.read().json(filePath).as(Encoders.bean(Row.class));

我想将行收集到驱动程序中。

Row[] rows = df.collect();

函数collect()返回Object[]。我该如何投射到Row[]

1 个答案:

答案 0 :(得分:1)

您可以使用DataSet.collectAsList()方法来获取List,并将其转换为类型数组。但是,这将导致为列表分配更多的内存:

List<Row> list = df.collectAsList();
Row[] arr = list.toArray(new Row[0]);