【发布时间】:2018-01-20 01:30:48
【问题描述】:
我的问题是:
第5行:单撇号(')的符号的操作是什么?不能很清楚地理解 withColumn 函数是如何在这里工作的。还请详细说明它是如何显示的,如这些列顺序- |id |text |upper |。
代码:
1. val dataset = Seq((0, "hello"),(1, "world")).toDF("id","text")
2. val upper: String => String =_.toUpperCase
3. import org.apache.spark.sql.functions.udf
4. val upperUDF = udf(upper)
5. dataset.withColumn("upper", upperUDF('text)).show
输出:
+---------+---------+---------+
|id |text |upper |
+---------+---------+---------+
| 0 | hello |HELLO |
| 1 | world |WORLD |
+---------+---------+---------+
【问题讨论】:
-
withColumn如果传递给它的第一个参数在数据框中尚不存在,则创建一个新列。如果是这样,它会覆盖现有的列。'text用于选择名为text的列。您也可以使用$"text"或org.apache.spark.sql.functions.col(text)代替'text。顺序是这样的,因为前两列是id和text和withColumn是 附加 列,它将在最后添加。您需要先浏览文档。你会在那里发现很多有趣的东西。 -
@philantrovert 非常感谢
标签: scala apache-spark user-defined-functions anonymous-function