小编mku*_*kel的帖子

Spark 数据集 <Row> 到 ArrayList Java

我有一个数据集,其中包含我想要输出到 GUI 的值。过去我会使用

List<someObject>
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我想维持这样的结构,但如果有其他解决方案可用,我也不会硬性要求它。

数据集行的列是

x:y:z:t
Run Code Online (Sandbox Code Playgroud)

我尝试使用 Dataset subDf 的输出模式创建一个类,然后创建一个列表

List<SinglePoint>aList=subDf.as(Encoders.bean(SinglePoint.class)).collectAsList();
Run Code Online (Sandbox Code Playgroud)

但这会因难以解释的错误而崩溃

线程“main”中的异常 java.lang.RuntimeException:解码时出错:java.util.concurrent.ExecutionException:java.lang.Exception:编译失败:org.codehaus.commons.compiler.CompileException:文件“generate.java” ,第 27 行,第 60 列:没有找到零实际参数的适用构造函数/方法;候选者是:“database.util.SinglePoint(int, int, int, int)” /* 001 / public java.lang.Objectgenerate(Object[]references) { / 002*/ return new SpecificSafeProjection(references);

我也尝试过

List<String>listTwo=subDf.map(row->row.mkString(),Encoders.STRING()).collectAsList()
Run Code Online (Sandbox Code Playgroud)

但这不具备放入 GUI 中所需的结构。

如何将数据集转换为可交互的列表?

java apache-spark apache-spark-sql

5
推荐指数
0
解决办法
2572
查看次数

从ArrayList中删除对象

我有一个ArrayList和一个TreeSet拥有相同的对象类型。

TreeSet<StatusChangeDB> listToChange;
List<StatusChangeDB> originalList;
Run Code Online (Sandbox Code Playgroud)

StatusChangeDB 看起来像...

public class StatusChangeDB implements Comparable<StatusChangeDB> {


    private String sector;
    private String superlayer;
    private String loclayer;
    private String locwire;
    private String problem_type;
    public StatusChangeDB() {
    }
...
...
getters and setters
hashCode()
equals(Object)
compareTo(...)
}
Run Code Online (Sandbox Code Playgroud)

生成原始列表时,对象StatusChangeDB具有其原语的5组中的4组,即扇区,超层,loclayer,locwire。原始列表显示在实现AbstractTableModel的JTable中。

在过程中的某个时刻,用户从显示的表中选择行,并分配“ problemType”,这将创建TreeSet listToChange。

现在,一旦“ problemType”被“设置”,我想从JTable中删除选择的值。为此,我不能使用直线

originaList.removeAll(listToChange)
Run Code Online (Sandbox Code Playgroud)

因为对象因“ problemType”而不同。

我已经在TableModel中尝试了此方法

public void removeRow(TreeSet<StatusChangeDB> listToChange) {
    //this.wireList.removeAll(statusChangeDBs); Does not work 
    //because objects are different
    for (StatusChangeDB row : listToChange) {
        for (StatusChangeDB statusChangeDB : originalList) { …
Run Code Online (Sandbox Code Playgroud)

java arraylist

2
推荐指数
1
解决办法
214
查看次数

标签 统计

java ×2

apache-spark ×1

apache-spark-sql ×1

arraylist ×1