Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Scala中读取38精度18刻度的十进制数据_Scala_Apache Spark_Hadoop_Apache Spark Sql - Fatal编程技术网

如何在Scala中读取38精度18刻度的十进制数据

如何在Scala中读取38精度18刻度的十进制数据,scala,apache-spark,hadoop,apache-spark-sql,Scala,Apache Spark,Hadoop,Apache Spark Sql,我在RDBMS中有十进制(38,16)类型的数据。我正在以拼花文件格式将这些数据导入HDFS(Hadoop)。在那之后,我将拼花地板文件读入Spark代码 val df = spark.read.parquet(<path>) 为了解决这个问题,我必须举一个简单的例子 比如说, val dt = Array(1,88.2115557137985,223.7658213615901501) 输出: scala> df.printSchema root |-- id: int

我在RDBMS中有十进制(38,16)类型的数据。我正在以拼花文件格式将这些数据导入HDFS(Hadoop)。在那之后,我将拼花地板文件读入Spark代码

val df = spark.read.parquet(<path>)
为了解决这个问题,我必须举一个简单的例子

比如说,

val dt = Array(1,88.2115557137985,223.7658213615901501)
输出:

scala> df.printSchema
root
 |-- id: integer (nullable = true)
 |-- cnt: double (nullable = true)
scala> dt.foreach(println)
1.0
88.2115557137985
223.76582136159016
但在这里,我期待着,因为它是数据,没有四舍五入的价值


提前感谢。

在读取拼花地板文件时,您可以预定义您的模式以生成高精度列
DecimalType

import org.apache.spark.sql.types._

val customSchema = StructType(Array(
  StructField("id", IntegerType, true),
  StructField("cnt", DecimalType(38, 16), true)
))

val df = spark.read.schema(customSchema).parquet("/path/to/parquetfile")

在读取拼花地板文件时,可以预定义模式,使高精度列
DecimalType

import org.apache.spark.sql.types._

val customSchema = StructType(Array(
  StructField("id", IntegerType, true),
  StructField("cnt", DecimalType(38, 16), true)
))

val df = spark.read.schema(customSchema).parquet("/path/to/parquetfile")

示例数组和您提供的架构不匹配。不清楚你在问什么。Scala 2.11.8 repl将输出显示为输入,无需舍入。您还需要这方面的帮助吗?示例数组和您提供的架构不匹配。不清楚你在问什么。Scala 2.11.8 repl将输出显示为输入,无需舍入。你还需要帮助吗?