在 Scala 中创建一个 Java 对象
Creating a Java Object in Scala
我有一个Javaclass"Listings"。我在我的 Java MapReduce 作业中使用它,如下所示:
public void map(Object key, Text value, Context context) throws IOException, InterruptedException {
Listings le = new Listings(value.toString());
...
}
我想 运行 在 Spark 上做同样的工作。所以,我现在正在用 Scala 写这个。我导入了 Java class:
import src.main.java.lists.Listings
我想在 Scala 中创建一个列表对象。我这样做:
val file_le = sc.textFile("file// Path to file")
Listings lists = new Listings(file_le)
我收到一个错误:
value lists is not a member of object src.main.java.lists.Listings
正确的做法是什么?
根据您所说的,我认为您可能忘记了 Scala 语法和 Java 语法之间的区别。
试试这个:
val lists: Listings = new Listings(SomeString)
请注意,在 Scala 中指定类型是完全可选的。此外,如果您要更改 lists
.
的值,请使用 var
按照您的方式,Scala 试图通过调用不带“.”的对象的 methods/access 值的能力来解释它,因此您实际上是在告诉 Scala:
Listings.lists = new Listings(SomeString)
我有一个Javaclass"Listings"。我在我的 Java MapReduce 作业中使用它,如下所示:
public void map(Object key, Text value, Context context) throws IOException, InterruptedException {
Listings le = new Listings(value.toString());
...
}
我想 运行 在 Spark 上做同样的工作。所以,我现在正在用 Scala 写这个。我导入了 Java class:
import src.main.java.lists.Listings
我想在 Scala 中创建一个列表对象。我这样做:
val file_le = sc.textFile("file// Path to file")
Listings lists = new Listings(file_le)
我收到一个错误:
value lists is not a member of object src.main.java.lists.Listings
正确的做法是什么?
根据您所说的,我认为您可能忘记了 Scala 语法和 Java 语法之间的区别。
试试这个:
val lists: Listings = new Listings(SomeString)
请注意,在 Scala 中指定类型是完全可选的。此外,如果您要更改 lists
.
按照您的方式,Scala 试图通过调用不带“.”的对象的 methods/access 值的能力来解释它,因此您实际上是在告诉 Scala:
Listings.lists = new Listings(SomeString)