如何在Java中创建动态Seq <Column>

Jos*_*osé 1 java dataset apache-spark

我想从另一个数据库中创建一个数据集,但仅使用某些特定的列,并且我想使用该dataset.select()功能,而不是创建一个从该数据集中选择所需列的动态SQL查询。

我发现使用JavaConversions.asScalaBuffer(asList(new Column("value1"), new Column("value2")))I可以创建一个,Set<Column>但是如何动态创建呢?因为我已经尝试过了

List<Column> filterColumns = new ArrayList<>();
for (ColumnMetadata field : fields) {
    filterColumns.add(new Column(field.getFieldName()));
}  
dataset.select(JavaConversions.asScalaBuffer(asList(filterColumns)))
Run Code Online (Sandbox Code Playgroud)

但这不起作用,编译器说 no suitable method found for select(Buffer<List<Column>>)

aba*_*hel 5

像下面的列表一样使用它。

dataset.select(JavaConversions.asScalaBuffer(filterColumns));
Run Code Online (Sandbox Code Playgroud)

或像下面这样

dataset.select(JavaConversions.asScalaBuffer(filterColumns).seq());
Run Code Online (Sandbox Code Playgroud)