如何截断DataFrame列中字符串的长度?

时间:2019-03-28 15:00:29

标签: scala apache-spark-sql

我有一个DataFrame,其中包含带有文本的列,并且我想将Column中的文本截断为一定长度。我尝试了以下操作:

val updatedDataFrame = dataFrame.withColumn("NewColumn", col("ExistingColumn").take(15))

出现以下错误是因为我转换了Column而不是其内容:

  

笔记本:7:错误:取值不是的成员   org.apache.spark.sql.Column                                    .withColumn(“ NewColumn”,col(“ ExistingColumn”)。take(15))

1 个答案:

答案 0 :(得分:1)

使用方法substring,如下所示:

import org.apache.spark.sql.functions._
import spark.implicits._

val df = Seq( (1, "abcdef"), (2, "uvwx") ).toDF("id", "value")

df.withColumn("value3", substring($"value", 1, 3)).show
// +---+------+------+
// | id| value|value3|
// +---+------+------+
// |  1|abcdef|   abc|
// |  2|  uvwx|   uvw|
// +---+------+------+