Spark DataFrame如何更改列column的类型

如下示例,通过最初json文件所生成的df的age列是Long类型,给它改成其他类型。当然不止如下两种方法,但我觉得这是最为简单的两种了

val spark = SparkSession.builder().master("local").appName("DataFrame API").getOrCreate()

//    读取spark项目中example中带的几个示例数据,创建DataFrame
val people = spark.read.format("json").load("data/people.json")
people.show()
people.printSchema()

val p = people.selectExpr("cast(age as string) age_toString","name")
p.printSchema()

import spark.implicits._ //导入这个为了隐式转换,或RDD转DataFrame之用
import org.apache.spark.sql.types.DataTypes
people withColumn("age", $"age".cast(DataTypes.IntegerType))    //DataTypes下有若干数据类型,记住类的位置
people.printSchema()

参考这个:How to change column types in Spark SQL’s DataFrame?

https://www.jianshu.com/p/0634527f3cce

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值