Spark JDB C Набор данных имеет тип базы данных при загрузке в Java - PullRequest
0 голосов
/ 07 марта 2020

При загрузке набора данных Spark из JDB C тип данных отражает тип данных базы данных, например, если таблица базы данных имеет тип «десятичный (22,0)», он будет загружен в набор данных как этот тип

enter code here
Dataset<Row> dataset = sparkSession.read()
                .format("jdbc")
                .option("url", url)
                .option("query", "select COLUMN_1, COLUMN_2 where 1=2")
                .option("user", username)
                .option("password", password)
                .option("driver", driverClass)
                .load();
enter code here

При попытке добавить новую строку к этому набору данных в Java он создаст sh с недопустимым типом данных, поскольку в Java

* 1005 нет точного сопоставления этого типа. * Я что-то не так делаю?

1 Ответ

0 голосов
/ 07 марта 2020

Возможно, вы добавляете неправильный ряд, вы можете использовать этот тип. Пожалуйста, добавьте остаток вашего кода.

scala> val df =Seq("1111111111111111111111").toDF("val").select('val.cast("decimal(22,0)"))
res42: org.apache.spark.sql.DataFrame = [val: decimal(22,0)]

scala> df.printSchema
root
 |-- val: decimal(22,0) (nullable = true)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...