【Spark SQL】数据类型转换和保留小数
原创
飝鱻?
2022-03-23 10:21:17
博主文章分类:Spark
©著作权
文章标签
spark
sql
scala
数据
保留小数
文章分类
代码人生
©著作权归作者所有:来自51CTO博客作者飝鱻?的原创作品,请联系作者获取转载授权,否则将追究法律责任
数据类型转换和保留小数
数据展示![【Spark SQL】数据类型转换和保留小数_spark](https://s2.51cto.com/images/blog/202201/10002127_61db0b875230542705.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
数据类型转换
//创建环境
val spark = SparkSession.builder()
.master("local[6]")
.appName("test")
.getOrCreate()
//隐式转换
import spark.implicits._
//读取数据
val sourceDF = spark.read
.option("header", true)
.csv("dataset/test.csv")
//先展示数据结构
sourceDF.printSchema()
//将id改成int类型,成绩改成double类型
val resout1: DataFrame = sourceDF.select('Sid.cast("int"), 'Sname, 'Score.cast("double"))
//再次展示数据结构
resout1.printSchema()
结果展示![【Spark SQL】数据类型转换和保留小数_保留小数_02](https://s2.51cto.com/images/blog/202201/10002127_61db0b879746a86758.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
保留小数
//先展示原始数据
sourceDF.show()
//导入隐式转换
import org.apache.spark.sql.functions._
//将成绩列数据保留两位小数
/**
* 使用round保留小数,超出部分截取,不够的的不会不领
*/
val result2: DataFrame = sourceDF.select('Sid, 'Sname, expr("round(Score,2)") as "Score")
//展示处理后的数据
result2.show()
/**
* 这种类型会补零
*/
val result3: DataFrame = sourceDF.select('Sid, 'Sname, expr("cast(Score as decimal(18,2))") as "Score")
result3.show()
结果展示![【Spark SQL】数据类型转换和保留小数_保留小数_03](https://s2.51cto.com/images/blog/202201/10002127_61db0b87bda2b47343.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
打赏
赞
收藏
评论
分享
举报
上一篇:【Spark】Spark扩展
下一篇:【Hive】使用load导入文件数据却导致文件消失
|