У меня есть данные типа Decimal (38,16) в СУБД. Я импортирую эти данные в HDFS (Hadoop) в формате паркетного файла. После этого я читаю этот файл паркета в код Spark.
val df = spark.read.parquet(<path>)
После загрузки данных в фрейм данных Spark тип данных этого столбца преобразуется в double. Это округляет значение столбца cnt
до 14 цифр после запятой, в то время как у меня есть 16 цифр после запятой.
Схема:
scala> df.printSchema
root
|-- id: integer (nullable = true)
|-- cnt: double (nullable = true)
Чтобы решить эту проблему, я должен взять простой пример.
Например,
val dt = Array(1,88.2115557137985,223.7658213615901501)
Вывод:
scala> dt.foreach(println)
1.0
88.2115557137985
223.76582136159016
Но здесь я ожидаю, так как это данные без округления значения.
Заранее спасибо.