比方说,我们有一个dataset
/dataframe
在星火其中有3列 ID
,Word
,Timestamp
UDAF合并哪里是在Spark DataSet中第一orderdby /行数据帧
我想在那里我可以写一个UDAF
功能做这样的事情
df.show()
ID | Word | Timestamp
1 | I | "2017-1-1 00:01"
1 | am | "2017-1-1 00:02"
1 | Chris | "2017-1-1 00:03"
2 | I | "2017-1-1 00:01"
2 | am | "2017-1-1 00:02"
2 | Jessica | "2017-1-1 00:03"
val df_merged = df.groupBy("ID")
.sort("ID", "Timestamp")
.agg(custom_agg("ID", "Word", "Timestamp")
df_merged.show
ID | Words | StartTime | EndTime |
1 | "I am Chris" | "2017-1-1 00:01" | "2017-1-1 00:03" |
1 | "I am Jessica" | "2017-1-1 00:01" | "2017-1-1 00:03" |
问题是如何确保该列Words
会以正确的顺序进行合并我UDAF
里面?
列返回从'udaf'总是在数据框的列末尾。但是你可以用'select'来反正你想要的。 –