我想更改以下数据框:
If (Not String.IsNullOrEmpty(_spaRef)) And (Not String.IsNullOrEmpty(_cusRef)) Then
Using adpt As New SoftwareSolutions_DataSetTableAdapters.view_SpaCreditDifferencesTableAdapter
Dim dt = adpt.GetAdjustmentsListByIndex(_spaRef, _cusRef).Rows
For Each dr As DataRow In dt
lbxAdjustments.Items.Add(dr("adjNumber").ToString())
Next
End Using
End If
到以下数据框:
--id--rating--timestamp--
-------------------------
| 0 | 5.0 | 231312231 |
| 1 | 3.0 | 192312311 | #Epoch time (seconds from 1 Thursday, 1 January 1970)
-------------------------
我怎么能这样做?
答案 0 :(得分:5)
使用内置函数很容易
import org.apache.spark.sql.functions._;
import spark.implicits._
val newDF = dataset.withColumn("timestamp", month(from_unixtime('timestamp)));
请注意,DataFrame是不可变的,因此您可以创建新的DataFrame但不能修改。当然,您可以将此数据集分配给同一个变量。
注意数字2:DataFrame =数据集[行],这就是我使用这两个名字的原因
答案 1 :(得分:1)
如果您来自scala,可以在Dataframe.select
或Dataframe.withClumn
方法中使用sql.functions
方法,对于您的情况,我认为方法month(e: Column): Column
可以执行您想要的更改。它会是这样的:
import org.apache.spark.sql.functions.month
df.withColumn("timestamp", month("timestamp") as "month")
我相信在Java
,Python
和R