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

How to cast Object[] to Row[]?

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

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

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

Row[] rows = df.collect();

函数collect()returnsObject[]。我如何转换为 Row[]

您可以使用 DataSet.collectAsList() 方法获得一个 List,您可以将其转换为类型化数组。然而,这将导致为列表分配额外的内存:

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