Dataset<Row>转成List<Row>
时间: 2023-11-11 18:10:42 浏览: 64
可以使用`collectAsList()`方法将`Dataset<Row>`转换为`List<Row>`。示例代码如下:
```java
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import java.util.List;
public class DatasetToList {
public static List<Row> convertToList(Dataset<Row> dataset) {
return dataset.collectAsList();
}
}
```
在使用时,只需要传入`Dataset<Row>`即可获得`List<Row>`的结果。例如:
```java
Dataset<Row> dataset = ...
List<Row> list = DatasetToList.convertToList(dataset);
```
相关问题
private List<JSONObject> getBillData(List<QFilter> billQfList) { DataSet billRows = QueryServiceHelper.queryDataSet(this.getClass().getName(), "mdsp_water_bill_info", "id,mdsp_receipt_fid_tag", billQfList.toArray(new QFilter[billQfList.size()]), "id"); List<JSONObject> billList = new ArrayList<>(); while (billRows.hasNext()) { Row row = billRows.next(); JSONObject bill = new JSONObject(); bill.put("id", row.getLong("id")); bill.put("fidTag", row.getString("mdsp_receipt_fid_tag")); billList.add(bill); } billRows.close(); return billList; }
这是一个私有方法,它接受一个类型为`List<QFilter>`的参数`billQfList`,并返回一个类型为`List<JSONObject>`的数据。该方法使用`QueryServiceHelper`类来查询名为`mdsp_water_bill_info`的数据集,并根据提供的过滤器数组进行过滤。然后,将查询结果转换为`List<JSONObject>`并返回。
在循环中,每次迭代都会创建一个新的`JSONObject`对象,并将查询结果中的"id"和"mdsp_receipt_fid_tag"字段的值存储到该对象中。最后,将每个创建的`JSONObject`对象添加到`billList`列表中。
请注意,最后关闭了`billRows`对象,以确保资源被正确释放。
java 中spark3初始化dataset row
在Java中,初始化Spark 3 Dataset的Row对象可以使用以下代码:
```java
import org.apache.spark.sql.Row;
import org.apache.spark.sql.types.*;
// 定义结构化数据的类型
StructType schema = new StructType(new StructField[] {
new StructField("name", DataTypes.StringType, false, Metadata.empty()),
new StructField("age", DataTypes.IntegerType, false, Metadata.empty())
});
// 创建Row对象
Row row = RowFactory.create("John", 30);
// 创建Dataset
Dataset<Row> dataset = spark.createDataFrame(Collections.singletonList(row), schema);
```
这里首先需要定义结构化数据的类型,然后使用RowFactory.create()方法创建Row对象,最后使用spark.createDataFrame()方法将Row对象转换为Dataset。注意,如果有多条记录,需要将所有Row对象添加到List中。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)