Mysql «Выбрать мод (col1, 10) ...» генерирует bigint. Как сделать его типом int - PullRequest
2 голосов
/ 07 августа 2020

У меня есть следующий код

String sql = "(select mod_col, 1 as count_col from ( " +
                    "select mod(col1, 10) as mod_col " +
                    "from table1 c " +
                    "where c.col2 = 1) temp " +
                    "group by mod_col, count_col ) as temp2";

DataFrame df = getDSEDataFrame(sql);

Обратите внимание, что col1 определен в mysql с типом int(11) NOT NULL.

Однако, когда я проверяю df, mod_col имеет правильное значение как bigint. Это вызывает исключение java.math.BigDecimal cannot be cast to java.lang.Integer для моего следующего кода

        List<Row> col1List = df.collectAsList();

        for (Row r : col1List) {
             Integer col1Val = r.getAs("mod_col");  // exception thrown here
        }

Есть ли способ в приведенном выше sql, чтобы я мог заставить его вернуть целое число вместо большого целого числа?

...