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)
我该怎么做?
使用内置功能很容易
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],这就是为什么我同时使用两个名称的原因