如何在Scala中移植java内部函数?
如何从中移植java内部函数 哪个完全包含在Scala中如何在Scala中移植java内部函数?,java,scala,inner-classes,Java,Scala,Inner Classes,如何从中移植java内部函数 哪个完全包含在Scala中 JavaPairRDD<Envelope, HashSet<Point>> castedResult = joinListResultAfterAggregation.mapValues(new Function<HashSet<Geometry>,HashSet<Point>>() { @Override
JavaPairRDD<Envelope, HashSet<Point>> castedResult = joinListResultAfterAggregation.mapValues(new Function<HashSet<Geometry>,HashSet<Point>>()
{
@Override
public HashSet<Point> call(HashSet<Geometry> spatialObjects) throws Exception {
HashSet<Point> castedSpatialObjects = new HashSet<Point>();
Iterator spatialObjectIterator = spatialObjects.iterator();
while(spatialObjectIterator.hasNext())
{
castedSpatialObjects.add((Point)spatialObjectIterator.next());
}
return castedSpatialObjects;
}
});
return castedResult;
这个怎么样
val castedResult = joinListResultAfterAggregation.mapValues(spatialObjects => {
spatialObjects.map(obj => (Point) obj)
})
这个怎么样
val castedResult = joinListResultAfterAggregation.mapValues(spatialObjects => {
spatialObjects.map(obj => (Point) obj)
})
当询问有关编译错误的问题时,请提供确切的错误,尤其是当您的代码无法独立运行时
内部功能本身是好的;我的猜测是,由于上面的更改,joinListResultAfterAggregation不再是一个
JavaPairRDD
,而是一个普通的RDD[(信封,某物)]
(其中某物可以是java.util.HashSet
,scala.collection.Set
或某些子类型),因此它的mapValues
采用Scala函数,而不是org.apache.spark.api.java.function.function
。Scala函数以lambdas的形式编写:SpatialObject:Something=>…
(主体将取决于Something
实际是什么,并且在某些情况下可以省略参数类型)。询问编译错误时,请提供确切的错误,尤其是当您的代码无法独立运行时
内部功能本身是好的;我的猜测是,由于上面的更改,joinListResultAfterAggregation
不再是一个JavaPairRDD
,而是一个普通的RDD[(信封,某物)]
(其中某物可以是java.util.HashSet
,scala.collection.Set
或某些子类型),因此它的mapValues
采用Scala函数,而不是org.apache.spark.api.java.function.function
。Scala函数以lambdas的形式编写:SpatialObject:Something=>…
(主体将取决于Something
实际是什么,在某些情况下可以省略参数类型)