修改spark DataFrame列

Lec*_*ico 5 dataframe apache-spark

我想更改以下数据框:

--id--rating--timestamp--
-------------------------
| 0 | 5.0  |  231312231 |
| 1 | 3.0  |  192312311 | #Epoch time (seconds from 1 Thursday, 1 January 1970)
-------------------------
Run Code Online (Sandbox Code Playgroud)

到以下数据框:

--id--rating--timestamp--
--------------------------
| 0 |  5.0  |  05        |
| 1 |  3.0  |  04        | #Month of year
--------------------------
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

T. *_*ęda 5

使用内置功能很容易

import org.apache.spark.sql.functions._;
import spark.implicits._
val newDF = dataset.withColumn("timestamp", month(from_unixtime('timestamp)));
Run Code Online (Sandbox Code Playgroud)

请注意,DataFrame是不可变的,因此您可以创建新的DataFrame但不能进行修改。当然,您可以将此数据集分配给相同的变量。

注意数字2:DataFrame = Dataset [Row],这就是为什么我同时使用两个名称的原因