在 Java 中将 List<Rows> 转换为 List<long>

pri*_*man 2 java cassandra apache-spark

我查询了 cassandra 表并选择了 curent_time,如下所示:

 Dataset getTime = spark.sql("select current_time from trafficdata where current_time between "+ time1 +" and "+ time2 );
 getTime.show();
 List<Rows> list = getTime.collectAsList();
Run Code Online (Sandbox Code Playgroud)

我想将其转换List<Rows>List<Long>. 有谁知道怎么做?

T. *_*ęda 5

您不能强制转换List<Row>List<Long>,但可以转换它。

一件事:Dataset.collectAsList返回List<T>,因为Dataset<Row>它会是List<Row>,不是List<Rows>- 可能是错字。

你可以做:

List<Long> longs = new ArrayList<>();
for(Row row : list) {
    longs.add(row.getLong(0));
} 
Run Code Online (Sandbox Code Playgroud)

Java 8 流选项:

List<Long> longs = list.stream().map(row -> row.getLong(0)).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)