在Spark中, import Foundation
import Alamofire
public class APIClient {
@discardableResult
private static func performRequest<T:Decodable>(route:APIRouter, decoder: JSONDecoder = JSONDecoder(), completion:@escaping (AFResult<T>)->Void) -> DataRequest {
return AF.request(route)
.responseDecodable (decoder: decoder){ (response: AFDataResponse<T>) in
completion(response.result)
print("framework response::",response.result)
}
}
public static func taskID(id: String, completion:@escaping (AFResult< [TaskID]>)->Void) {
performRequest(route: APIRouter.TaskById(id: id), completion: completion)
}
}//APIClient
在lag
的限制下使用,但是在我的情况下,over()
不是必需的。我想计算连续行之间的差异,而不进行分组,排序或分区。我知道我需要使用over()
进行计算,但是我不知道如何使用“空” lag
来进行计算。谁能帮我?谢谢!
答案 0 :(得分:1)
没有lag
,就不能使用over()
功能。但是,您可以传递任何文字/同意值,以便它可以对连续的行执行lag
函数,而无需进行分组排序或分区。
像下面一样:
val w = Window.orderBy(lit(1))
df.withColumn("lagOut", lag(col("<column name>"), 1).over(w))
请检查以下链接以获取更多详细信息:
https://databricks.com/blog/2015/07/15/introducing-window-functions-in-spark-sql.html