我有以下数据框(结果为df.show()
):
auctionid| bid| bidtime| bidder|bidderrate|openbid|
|1638843936| 500.0|0.47836804| kona-java| 181| 500.0
|1638843936| 800.0| 0.8263889| doc213| 60| 500.0
|1638843936| 600.0| 3.7611227| zmxu| 7| 500.0
|1638843936|1500.0| 5.2263775| carloss8055| 5| 500.0
|1638843936|1600.0| 6.570625| jdrinaz| 6| 500.0
|1638843936|1550.0| 6.8929167| carloss8055| 5| 500.0
|1638843936|1625.0| 6.8931136| carloss8055| 5| 500.0
|1638844464| 300.0| 1.8111342| aprefer| 58| 300.0
|1638844464| 305.0| 3.2126737| 19750926o| 3| 300.0
|1638844464| 450.0| 4.1657987| coharley| 30| 300.0
|1638844464| 450.0| 6.7363195| adammurry| 5| 300.0
|1638844464| 500.0| 6.7364697| adammurry| 5| 300.0
|1638844464|505.78| 6.9881945| 19750926o| 3| 300.0
|1638844464| 551.0| 6.9896526| 19750926o| 3| 300.0
|1638844464| 570.0| 6.9931483| 19750926o| 3| 300.0
|1638844464| 601.0| 6.9939003| 19750926o| 3| 300.0
|1638844464| 610.0| 6.994965| 19750926o| 3| 300.0
|1638844464| 560.0| 6.9953704| ps138| 5| 300.0
我想使用Scala Spark从df1
开始到1638843936|1550.0
结束并创建另一个数据帧(1638844464| 570.0
),即df1.show()
应该显示:
|1638843936|1550.0| 6.8929167| carloss8055| 5| 500.0
|1638843936|1625.0| 6.8931136| carloss8055| 5| 500.0
|1638844464| 300.0| 1.8111342| aprefer| 58| 300.0
|1638844464| 305.0| 3.2126737| 19750926o| 3| 300.0
|1638844464| 450.0| 4.1657987| coharley| 30| 300.0
|1638844464| 450.0| 6.7363195| adammurry| 5| 300.0
|1638844464| 500.0| 6.7364697| adammurry| 5| 300.0
|1638844464|505.78| 6.9881945| 19750926o| 3| 300.0
|1638844464| 551.0| 6.9896526| 19750926o| 3| 300.0
|1638844464| 570.0| 6.9931483| 19750926o| 3| 300.0
我尝试了以下代码:
val df1=df.filter(df("auctionid")===1638843936 && df("bid")===1550.0**)
但这仅给了我一个价值。我该怎么做才能使所有行都到达1638844464| 570.0
行?
答案 0 :(得分:0)
由于数据集没有排序并且没有其他可以筛选的有序道具,所以我建议您创建一列monotonically_increasing_id,然后在id的上下边界之间获取所需字段