【发布时间】:2019-09-24 16:26:23
【问题描述】:
我正在尝试通过从现有列计算它来将列添加到数据集:
val test=Seq("aaxxx","bbxxx","ccxxx").toDF
test.show :
+-----+
|value|
+-----+
|aaxxx|
|bbxxx|
|ccxxx|
+-----+
这就是我想要的:
+-----+----+
|value|val2|
+-----+----+
|aaxxx|aa |
|bbxxx|bb |
|ccxxx|cc |
+-----+----+
为此我尝试过:
val column =test.select("value").as[String].map(e=>e.substring(0,2)).col("value")
test.withColumn("value2", column)
但我得到了:
org.apache.spark.sql.AnalysisException:已解决的属性 value#10 在运算符 !Project [value#1, value#10 AS value2.#17] 中的 value#1 缺失。具有相同名称的属性出现在操作中:值。请检查是否使用了正确的属性。;; !Project [value#1, value#10 AS value2.#17] +- LocalRelation [值#1]
谁能看到我的代码有什么问题,或者有更好的方法来获得所需的结果?
【问题讨论】:
标签: scala apache-spark apache-spark-sql