我正在尝试使用java在spark sql中将列数据类型从long转换为int,我已经在scala中看到了一些示例并进行了尝试,但是,它不起作用
df.withColumn("is_open", toInt("is_open"));
我需要在哪里更改。 预先感谢
答案 0 :(得分:2)
您可以使用 cast 功能。
scala> val df = spark.range(10)
df: org.apache.spark.sql.Dataset[Long] = [id: bigint]
scala> import org.apache.spark.sql.functions._
import org.apache.spark.sql.functions._
scala> df.withColumn("new_col", col("id").cast("string"))
res4: org.apache.spark.sql.DataFrame = [id: bigint, new_col: string]
答案 1 :(得分:0)
df = df.withColumn("is_open", df.col("is_open").cast("int"));
请注意,此强制转换是在上一步计算数据之后应用的。如果选择了上一步或类似步骤,它将首先计算为原始类型,然后在下一步中转换为新类型。这不会解决选择原始类型的问题。