烫伤:从单独的文件中添加trait

uinbv5nw  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(310)

我有几个非常重要的作业,其中包含一堆常量和几个函数,这些函数在所有作业中都是一致的。当我需要对其中一个进行更改时,我不想在5个不同的地方进行更改。我想创建一个特性来存储这些东西,但是我在引用/导入特性到我的工作中遇到了困难。
所以我有一个名为constants.scala的文件,它包含:

trait constants {a bunch of stuff defined here}

在我的一个名为myjob.scala的作业中,我尝试定义这样一个类:

class TrxnAmts(args : Args) extends Job(args) with constants {
    All my other code goes here
}

我尝试在hdfs中运行myjob,使用以下命令将constants.scala添加到类路径:

scalding/scripts/scald.rb --hdfs --cp /path/to/constants.scala /path/to/myJob.scala

constants.scala出现在类路径中,但无法识别trait中的任何内容。我该怎么做?我需要编译constants.scala并引用这个类还是先将它编译成jar?有没有更好的办法?
对oop不是很有经验,所以希望我没有问一个非常基本/明显的问题。
谢谢。

k97glaaz

k97glaaz1#

是的,你应该编译一下 .jar 类路径中的文件,而不是 .scala 或者 .java . 使用例如sbt来构建它们。

相关问题