我想根据周数和星期几对数据帧进行排序。
周数变量是双倍的。
星期几是文本(星期一,星期二,星期三,星期四,星期五,星期六,星期日)。
这是我的数据框:
week_number | day_of_week | job_count | eff_rate
-----------------------------------------------------
1 | Fri | 30 | 70
1 | Mon | 50 | 80
1 | Sat | 340 | 20
1 | Sun | 1 | 8
1 | Thu | 3 | 40
1 | Tue | 4 | 10
1 | Wed | 50 | 70
2 | Fri | 120 | 180
2 | Mon | 12 | 80
2 | Sat | 11 | 9
2 | Sun | 80 | 11
2 | Tue | 60 | 14
2 | Thu | 4 | 23
2 | Wed | 1 | 50
我认为我需要定义一个函数,我在其中定义排序应如何排序变量的内容。假设该函数名为manualsort。 manualsort()会是什么样的,它可以像这样使用?
df.sort(asc("week_number"), manualsort("day_of_week"))
结果将是这样的:
week_number | day_of_week | job_count | eff_rate
-----------------------------------------------------
1 | Mon | 50 | 80
1 | Tue | 4 | 10
1 | Wed | 50 | 70
1 | Thu | 3 | 40
1 | Fri | 120 | 180
1 | Sat | 340 | 20
1 | Sun | 1 | 8
答案 0 :(得分:0)
我是Scala的新手,不知道如何编写函数
Scala函数遵循您描述的格式;但有时一个例子比模板
更有用def addThem( a:Int, b:Int ) : Int = {
var sum:Int = 0
sum = a + b
return sum
}
关键点:
:
作为分隔符。 def getName() : String
)Int
兼容的内容)name:Type
格式,但偶尔会推断出类型。根据这些规则,我相信您将能够开始编写一些功能。对于排序,您有效地提供了Java Comparator
的Scala版本,除了您有更多的方法在Scala中执行它,因为您不需要将该函数包装在面向对象的{{1}中} class clothing。