我有一个庞大的时间序列数据,我想使用spark的并行处理/分布式计算进行数据处理.要求是逐行查看数据,以确定下面指定的组在所需的结果部分下,如果没有执行者之间的某种协调,我真的无法获得分配这一点的火花
t- timeseries datetime sample,
lat-latitude,
long-longitude
Run Code Online (Sandbox Code Playgroud)
例如:采用一小部分样本数据集来解释案例
t lat long
0 27 28
5 27 28
10 27 28
15 29 49
20 29 49
25 27 28
30 27 28
Run Code Online (Sandbox Code Playgroud)
Lat-long interval
(27,28) (0,10)
(29,49) (15,20)
(27,28) (25,30)
Run Code Online (Sandbox Code Playgroud)
我可以使用这段代码获得所需的结果
val spark = SparkSession.builder().master("local").getOrCreate()
import spark.implicits._
val df = Seq(
(0, 27,28),
(5, 27,28),
(10, 27,28),
(15, 26,49),
(20, 26,49),
(25, 27,28),
(30, 27,28)
).toDF("t", "lat","long")
val dfGrouped = df
.withColumn("lat-long", struct($"lat", $"long"))
val wAll = Window.partitionBy().orderBy($"t".asc)
dfGrouped.withColumn("lag", …Run Code Online (Sandbox Code Playgroud) 我有两个数据框
df1:
+---------------+-------------------+-----+------------------------+------------------------+---------+
|id |dt |speed|stats |lag_stat |lag_speed|
+---------------+-------------------+-----+------------------------+------------------------+---------+
|358899055773504|2018-07-31 18:38:36|0 |[9, -1, -1, 13, 0, 1, 0]|null |null |
|358899055773504|2018-07-31 18:58:34|0 |[9, 0, -1, 22, 0, 1, 0] |[9, -1, -1, 13, 0, 1, 0]|0 |
|358899055773505|2018-07-31 18:54:23|4 |[9, 0, 0, 22, 1, 1, 1] |null |null |
+---------------+-------------------+-----+------------------------+------------------------+---------+
Run Code Online (Sandbox Code Playgroud)
df2:
+---------------+-------------------+-----+------------------------+
|id |dt |speed|stats |
+---------------+-------------------+-----+------------------------+
|358899055773504|2018-07-31 18:38:34|0 |[9, -1, -1, 13, 0, 1, 0]|
|358899055773505|2018-07-31 18:48:23|4 |[8, -1, 0, 22, 1, 1, 1] |
+---------------+-------------------+-----+------------------------+
Run Code Online (Sandbox Code Playgroud)
我想将 df1 中的 …
我有一个数据框
id lat long lag_lat lag_long detector lag_interval gpsdt lead_gpsdt
1 12 13 12 13 1 [1.5,3.5] 4 4.5
1 12 13 12 13 1 null 4.5 5
1 12 13 12 13 1 null 5 5.5
1 12 13 12 13 1 null 5.5 6
1 13 14 12 13 2 null 6 6.5
1 13 14 13 14 2 null 6.5 null
2 13 14 13 14 2 [0.5,1.5] 2.5 3.5
2 13 14 13 14 2 null …Run Code Online (Sandbox Code Playgroud)