我有一个DataFrame,该DataFrame有两列“值”和“时间戳”,“ timestmp”是有序的,我想获取DataFrame的最后一行,我该怎么办?
这是我的输入:
+-----+---------+
|value|timestamp|
+-----+---------+
| 1| 1|
| 4| 2|
| 3| 3|
| 2| 4|
| 5| 5|
| 7| 6|
| 3| 7|
| 5| 8|
| 4| 9|
| 18| 10|
+-----+---------+
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
val arr = Array((1,1),(4,2),(3,3),(2,4),(5,5),(7,6),(3,7),(5,8),(4,9),(18,10))
var df=m_sparkCtx.parallelize(arr).toDF("value","timestamp")
Run Code Online (Sandbox Code Playgroud)
这是我的预期结果:
+-----+---------+
|value|timestamp|
+-----+---------+
| 18| 10|
+-----+---------+
Run Code Online (Sandbox Code Playgroud) 我有一个 DataFrame,我想删除第一行和第二行。我应该怎么办?
这是我的输入:
+-----+
|value|
+-----+
| 1|
| 4|
| 3|
| 5|
| 4|
| 18|
-------
Run Code Online (Sandbox Code Playgroud)
这是例外的结果:
+-----+
|value|
+-----+
| 3|
| 5|
| 4|
| 18|
-------
Run Code Online (Sandbox Code Playgroud) 我有一个RDD
,则RDD' partition
结果变为200,当我使用window
,我不能改变partition
,当我使用window
?
这是我的代码:
val rdd= sc.parallelize(List(1,3,2,4,5,6,7,8),4)
val result = rdd.toDF("values").withColumn("csum", sum(col("values")).over(Window.partitionBy(col("values")))).rdd
println(result.getNumPartitions + "rdd2")
Run Code Online (Sandbox Code Playgroud)
我的输入分区是4,为什么结果分区是200?
我希望我的结果分区也是 4。
有没有更清洁的解决方案?