小编Par*_*rma的帖子

Scala中的特征是接口还是抽象类?

我已经通过互联网阅读了Scala中的Traits

可以提供具体成员的接口

这意味着,traits是接口,我们可以为接口中的方法提供body.我在这里有一个简单的查询,如果这可能比我的下面的代码显示错误的原因:

错误:(6,8)对象Car继承冲突成员:trait中的方法startEngine类型=>单位和方法startEngine in type => Unit单位(注意:这可以通过在对象Car中声明覆盖来解决).对象汽车用汽车扩展车辆{

trait Vehical {
  def startEngine : Unit = {
    println("Vehical Start")
  }
  def stopEngine
}

trait Motor {
  def startEngine : Unit = {
    println("Motor Start")
  }
  def stopEngine
}

object Car extends Vehical with Motor {

  override def stopEngine : Unit = {
    println("Stop Engine")
  }

  def main(args: Array[String]): Unit = {
    Car.startEngine
    Car.stopEngine
  }
}
Run Code Online (Sandbox Code Playgroud)

作为一个java开发人员,我不会在界面中提供body,但scala traits允许这样做.如果traits不是接口,那么我会将它们视为抽象类,这意味着scala中不允许使用接口.

另请告诉我如何解决这个歧义问题.如果多个特征中有相同的方法,我如何在子类中使用我的startEngine方法.

scala traits

7
推荐指数
1
解决办法
1867
查看次数

Dataframe中的两个最新记录

我有一个Apache Spark Dataframe,其中包含以下数据(ID,Name,DATE):

ID,Name,DATE
1,Anil,2000-06-02
1,Anil,2000-06-03
1,Anil,2000-06-04
2,Arun,2000-06-05
2,Arun,2000-06-06
2,Arun,2000-06-07
3,Anju,2000-06-08
3,Anju,2000-06-09
3,Anju,2000-06-10
4,Ram,2000-06-11
4,Ram,2000-06-02
4,Ram,2000-06-03
4,Ram,2000-06-04
5,Ramu,2000-06-05
5,Ramu,2000-06-06
5,Ramu,2000-06-07
5,Ramu,2000-06-08
6,Renu,2000-06-09
7,Gopu,2000-06-10
7,Gopu,2000-06-11
Run Code Online (Sandbox Code Playgroud)

但我想要ID的前两个最新记录,我想获得以下输出:

ID,Name,DATE
1,Anil,2000-06-03
1,Anil,2000-06-04
2,Arun,2000-06-06
2,Arun,2000-06-07
3,Anju,2000-06-09
3,Anju,2000-06-10
4,Ram,2000-06-03
4,Ram,2000-06-04
5,Ramu,2000-06-07
5,Ramu,2000-06-08
6,Renu,2000-06-09
7,Gopu,2000-06-10
7,Gopu,2000-06-11
Run Code Online (Sandbox Code Playgroud)

我是否需要使用像Lag这样的窗口函数?

sql dataframe apache-spark

2
推荐指数
1
解决办法
48
查看次数

标签 统计

apache-spark ×1

dataframe ×1

scala ×1

sql ×1

traits ×1