27得票1回答
如何在Spark SQL中为自定义类型定义模式?

以下示例代码尝试将一些 case 对象放入数据框中。 该代码包括一个 case 对象层次结构的定义以及使用此 trait 的 case class: ```html 以下示例代码尝试将一些 case 对象放入数据框中。该代码包括一个 case 对象层次结构的定义,以及使用该 trait 的 ...

21得票2回答
Scala:Case类的unapply与手动实现以及类型擦除

我试图理解Scala对Case Classes的处理方式,使它们免受类型擦除警告的影响。 假设我们有以下简单的类结构。这基本上是一个Either:abstract class BlackOrWhite[A, B] case class Black[A,B]( val left: A ) ex...

20得票2回答
Scala:伴生对象与样例类的定义顺序

在Scala 2.9.1中,我遇到了以下行为: class Foo { case class X() object X // this compiles def bar() { object Y // this compi...

19得票2回答
在Scala中使用通用的Case类

我想知道在Scala case类中使用泛型是否可以减少样板代码。 假设我有以下类层次结构,来模拟一个“变量”类型,它可以打包一组类型,并允许使用模式匹配进行解包: sealed abstract class Box; case class DoubleBox(v: Double) ext...

19得票1回答
从LabelledGeneric实例中提取标签值

考虑以下示例:import shapeless._ case class Foo(bar: String, baz: Boolean) val labl = LabelledGeneric[Foo] 现在,labl的类型是(美化后)LabelledGeneric[Foo] { type ...

19得票3回答
如何在需要层次结构时使用案例类?

我知道你不能继承case类,但如果确实需要怎么做?我们有两个层次结构的类,都包含许多字段,并且我们需要能够创建这两个类的实例。以下是我的选择: 如果我将超类作为普通类而不是case类 - 我将失去所有case类的好处,例如toString,equals,hashCode方法等。 如果我保持...

17得票3回答
依赖于特质中的案例类方法

有没有一种方法可以在trait中依赖于case class中定义的方法?例如,复制:以下代码不起作用。虽然我不确定为什么。 trait K[T <: K[T]] { val x: String val y: String def m: T = copy(x = "hello...

17得票2回答
在PySpark中,什么是与Scala case class等效的内容?

你如何在 PySpark 中使用或实现一个类似于 case class 的东西?

17得票2回答
我能否从Avro模式定义中获取一个Scala案例类定义?

为了方便在Scala中处理Avro,我想基于存储在.avro文件中的模式定义一个case class。我可以尝试以下几种方法: 手写.scala case class定义。 编程方式将字符串写入.scala文件 使用字节码库(如ObjectWeb的ASM)欺骗case...

15得票1回答
Apache Spark中的案例类相等性

为什么Spark中的模式匹配与Scala不同?请看以下示例…函数f()尝试在类上进行模式匹配,在Scala REPL中可以正常工作,但在Spark中失败并导致所有“?”。 f2()是一个解决方法,在Spark中使用.isInstanceOf()获得所需结果,但我了解到这在Scala中是不好的形...