如何检查spark中的列数据类型

How to check column data type in spark

我有一种插补方法可以进行均值、中值和众数运算,但如果列数据类型不在 Double/Float 中,这种方法就会失败。
我的 java 代码:

Imputer imputer = new Imputer().setInputCol("amount").setOutputCol("amount);
                                
imputer.setStrategy("mean");
ImputerModel model = imputer.fit(dataset);
model.transform(dataset);

有什么办法可以解决这个问题
我正在使用 java

我可以推荐一种方法,但不确定它是否是最佳方法。
第 1 步:获取字段详细信息这将 return StructField[]
第 2 步:遍历接收到的数组并检查列的数据类型

private boolean isValidColumnTypes(String[] columnArray, Dataset<?> dataset) {
        StructField[] fieldArray = dataset.schema().fields();
        for (int i = 0; i < columnArray.length; i++) {
            for (StructField data : fieldArray) {
                    boolean doubleType=data.dataType().toString().equals("DoubleType");
                    boolean floatType=data.dataType().toString().equals("FloatType");   
                    if (columnArray[i].equals(data.name()) && !(doubleType ||floatType)){
                    return false;
                }
            }
        }
        return true;
    }

在上述方法中,我将列名作为字符串数组传递 String[] columnArray