【发布时间】:2018-05-31 07:31:18
【问题描述】:
我在一个文件中有如下所示的数据:
7373743343333444.
7373743343333432.
此数据应转换为十进制值,并应位于 8.7 的位置,其中 8 是小数点前的数字,7 是小数点后的数字。 我正在尝试读取数据文件如下:
val readDataFile = Initialize.spark.read.format("com.databricks.spark.csv").option("header", "true").option("delimiter", "|").schema(***SCHEMA*****).load(****DATA FILE PATH******)
我试过这个:
val changed = dataFileWithSchema.withColumn("COLUMN NAME", dataFileWithSchema.col("COLUMN NAME").cast(new DecimalType(38,3)))
println(changed.show(5))
但它只会在数字的末尾给我零,就像这样:
7373743343333444.0000
但我想要按照上述格式设置的数字,我该如何实现呢?
【问题讨论】:
-
有什么问题 - 你的号码
7373743343333444.和7373743343333444.0000一样? -
示例中有 16 个字符长的数字,但希望它是 8.7,是否应该删除最后一个数字?
标签: scala apache-spark hive formatting apache-spark-sql