Tag: scala

如何在Scala中序列化函数?

我正在切断akka-persistence,并发现了对象序列化的典型问题。 我的对象(如下所示)具有基本类型和function。 我读了这个 , 这个和这个 ,但没有一个帮我制作下面的序列化。 测试工具 object SerializationUtil { def write(obj: Any): String = { val temp = Files.createTempFile(null, null).toFile val out = new ObjectOutputStream(new FileOutputStream(temp)) out.writeObject(obj) out.close() temp.deleteOnExit() temp.getAbsolutePath } def read[T](file: String) = { val in = new ObjectInputStream(new FileInputStream(new File(file))) val obj = in.readObject().asInstanceOf[T] in.close() obj } } 统计 case class […]

线程“main”中的exceptionjava.lang.NumberFormatException:不是版本:9

我试图在eclipse中运行Spark maven Scala项目。 当我运行scala类时 ,我收到此错误: Exception in thread “main” java.lang.NumberFormatException: Not a version: 9 at scala.util.PropertiesTrait$class.parts$1(Properties.scala:184) at scala.util.PropertiesTrait$class.isJavaAtLeast(Properties.scala:187) at scala.util.Properties$.isJavaAtLeast(Properties.scala:17) …. 怎么了 ? 什么是版本9?

为什么我的PlayFramework应用程序会超时很长?

我已经创建了一个有效的应用程序,但有时当我更改内容并在浏览器中点击“重新加载”-Button时,应用程序需要永远超时(300000毫秒或5分钟! )。 之后,我在浏览器中收到以下exception: java.util.concurrent.TimeoutException: Futures timed out after [300000 milliseconds] scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:219) scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:223) scala.concurrent.Await$$anonfun$result$1.apply(package.scala:111) scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53) scala.concurrent.Await$.result(package.scala:111) play.forkrun.ForkRun$$anonfun$askForReload$1.apply(ForkRun.scala:123) play.forkrun.ForkRun$$anonfun$askForReload$1.apply(ForkRun.scala:121) play.runsupport.Reloader.reload(Reloader.scala:295) play.core.ReloadableApplication$$anonfun$get$1.apply(ApplicationProvider.scala:122) play.core.ReloadableApplication$$anonfun$get$1.apply(ApplicationProvider.scalscala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24) scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24) scala.concurrent.forkjoin.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1361) scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) 控制台中的错误: [error] application – [info] [info] ! Internal server error, for (GET) [/] -> [info] [info] java.util.concurrent.TimeoutException: Futures timed out after [300000 milliseconds] [info] at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:219) ~[scala-library-2.11.1.jar:na] [info] at […]

元素的映射变坏了

我正在实现k-means ,我想创建新的质心。 但映射留下了一个元素! 但是,当K的值较小时,如15,它将正常工作。 基于该代码,我有: val K = 25 // number of clusters val data = sc.textFile(“dense.txt”).map( t => (t.split(“#”)(0), parseVector(t.split(“#”)(1)))).cache() val count = data.count() println(“Number of records ” + count) var centroids = data.takeSample(false, K, 42).map(x => x._2) do { var closest = data.map(p => (closestPoint(p._2, centroids), p._2)) var pointsGroup = closest.groupByKey() println(pointsGroup) pointsGroup.foreach […]

任务不能在Spark上序列化

我有一个转变: JavaRDD<Tuple2> mappedRdd = myRDD.values().map( new Function<Pageview, Tuple2>() { @Override public Tuple2 call(Pageview pageview) throws Exception { String key = pageview.getUrl().toString(); Long value = getDay(pageview.getTimestamp()); return new Tuple2(key, value); } }); Pageview是一种类型: Pageview.java 我将该类注册到Spark中,如下所示: Class[] c = new Class[1]; c[0] = Pageview.class; sparkConf.registerKryoClasses(c); 线程“main”中的exceptionorg.apache.spark.SparkException:在org.apache.spark.util.ClosureCleaner $ .clean的org.apache.spark.util.ClosureCleaner $ .ensureSerializable(ClosureCleaner.scala:166)中无法序列化的任务(ClosureCleaner.scala:158)org.apache.spark.SparkContext.clean(SparkContext.scala:1623)位于org.apache.spark的org.apache.spark.rdd.RDD.map(RDD.scala:286)。 api.java.JavaRDDLike $ class.map(JavaRDDLike.scala:89)位于org.apache.gora.tutorial.log.ExampleSpark的org.apache.spark.api.java.AbstractJavaRDDLike.map(JDJRDDLike.scala:46)。运行(ExampleSpark.java:100)at org.apache.gora.tutorial.log.ExampleSpark.main(ExampleSpark.java:53)引起:java.io.NotSerializableException:org.apache.gora.tutorial.log.ExampleSpark序列化stack: – 对象不可序列化(类:org.apache.gora.tutorial.log.ExampleSpark,值:org.apache.gora.tutorial.log.ExampleSpark@1a2b4497) – […]

为什么我不能将Scala的Function1隐式转换为java.util.function.Function?

我正在尝试创建Scala的Function1到java.util.function.Function的隐式转换。 这是我的代码: object Java8ToScala extends App { implicit def javaFuncToScalaFunc[T, R](func1: Function[T, R]): function.Function[T,R] = { new function.Function[T, R] { override def apply(t: T): R = func1.apply(t) } } val javaFunc:function.Function[String,Int] = (s:String) => s.length println(javaFunc.apply(“foo”)) // this works private val strings = new util.ArrayList[String]() println(strings.stream().map(javaFunc).collect(Collectors.toList())) // this doesn’t work } 编译器消息很难理解: [error] /xxx/Java8ToScala.scala:74: no […]

带有椭圆积分和bessel函数的Java / Scala数学库?

我正在寻找一个用于Java / Scala的科学计算的数学库。 特别是我需要完整的椭圆积分和修改贝塞尔函数。 如果它是开源的我会很好,但我想我将不得不采取任何在那里。 scipy(科学计算的python lib)替换会很棒:-)

使用JUnit测试GUI

好吧,我们都知道测试驱动的开发。 我需要编写一个基于GUI的库,但说实话,我总是忽略测试。 JUnit是否适用于大学等,但我们从来没有比通常的“实施列表和测试它”更深入。 因此,既然我不想为这些function编写一千个应用程序,我想知道,使用Scala和JUnit进行基于GUI的库测试的“专业”方法是什么? 谢谢收听。

用`?转换Java`sort`签名 超级T`到Scala(仿制药)

问题: 查看有关迁移Java签名的问题 public <A extends Comparable> void sort(List list) { } 对Scala来说,似乎没有办法避免 illegal cyclic reference involving type T 如果您像这样进行字面翻译,则会出错。 def compilerFailure[T : T]](a: Array[T]): T = { } 解决方法似乎是这样做 def workaround[A : A](list: List[A]) { } 如果你从字节码回程到Java,你得到这个(它失去了super部分) public <T extends Comparable, U> void scalaToJava(List a) { } 我的问题: scalaToJava版本是否等效于以下内容? public <T extends Comparable> void sort(List […]

使用Java Play Framework 2.3.x在控制器中unit testing文件上载

在大部分时间工作后,我觉得我非常接近如何测试接受来自JUnit的文件上传的控制器方法的解决方案。 我的juint测试代码如下: Map postData = makePostMap(uploadForm); File file = new File(“test/resources/shared/uploads/blank.csv”); TemporaryFile temporaryFile = new TemporaryFile(file); MultipartFormData.FilePart filePath = new MultipartFormData.FilePart( “file”, “file.csv”, new scala.Some(“text/csv”), temporaryFile); List fileParts = Lists.newArrayList(filePath); scala.collection.immutable.Seq files = JavaConversions.asScalaBuffer(fileParts).toList(); Map<String, scala.collection.immutable.Seq> postData2 = new HashMap(); for (String s : postData.keySet()) { postData2.put(s, JavaConversions.asScalaBuffer(Lists.newArrayList(postData.get(s))).toList()); } scala.collection.immutable.Map<String, scala.collection.immutable.Seq> scalaMap = JavaConversions.mapAsScalaMap(postData2).toMap(Predef.<Tuple2<String, scala.collection.immutable.Seq>>conforms()); […]