Tag: scala

如何检查路径中是否存在程序

我正在用scala编写一个程序,调用: Runtime.getRuntime().exec( “svn …” ) 我想检查命令行中是否有“svn”(即可以在PATH中访问)。 我怎样才能做到这一点 ? PS:我的程序设计用于在Windows上运行

为什么类型参数绑定T <:Comparable 失败T = Int?

scala> class Foo[T (3: Int).asInstanceOf[Comparable[Int]] res60: java.lang.Comparable[Int] = 3 scala> new Foo(3) :13: error: inferred type arguments [Int] do not conform to class Foo’s type parameter bounds [T <: java.lang.Comparable[T]] new Foo(3) ^ 第二个表达式是类型擦除的结果吗? 我将如何定义Foo以便我可以使用Int对其进行参数化,但仍然能够使用其实例变量执行某些排序行为?

Groovy 2.0与静态编译的性能如何?

我看到最近发布的Groovy 2.0包括可选的静态编译以及其他一些额外的好处,比如可选的静态类型检查。 在做了一些搜索之后,我找不到任何广泛的基准测试,将Groovy的性能(使用静态编译)与Java和Scala进行比较。 有谁知道任何这样的性能比较? 我们可以假设它与Groovy ++在它死之前是一样的吗? 如果它的性能可比,那么Groovy是否可以替代大型,性能关键的应用程序?

运行jacocoReport

我正在使用gradle 1.7和jacoco插件。 我的项目使用java和scala插件 当我运行gradlew -i clean jacocoTestReport时 报告未创建,我在日志中看到 :bl:jacocoTestReport (Thread[Daemon Thread 13,5,main] – start :bl:jacocoTestReport Skipping task ‘:bl:jacocoTestReport’ as task onlyIf is false. :bl:jacocoTestReport SKIPPED :bl:jacocoTestReport (Thread[Daemon Thread 13,5,main]) – complete 这是什么意思? 为什么不创建报告?

Heroku JVM调优

我已经为Heroku编写了一个关于Play2框架的应用程序,并且我遇到了内存问题。 2013-03-21T01:28:35+00:00 heroku[web.1]: Process running mem=543M(106.1%) 2013-03-21T01:28:35+00:00 heroku[web.1]: Error R14 (Memory quota exceeded) 本地我在Heroku(512MB)上使用相同的JVM设置和内存限制来分析它,但是当我在Heroku发送请求时它几乎立即运行我们的堆空间。 JAVA_OPTS: -Xmx384m -Xss512k -XX:+UseCompressedOops 如果我能分析那里发生了什么,我就不会有任何问题,但java-agent doest似乎对我有用。 我没有遇到任何我见过的内存泄漏。 我知道我创造的每个物体都只会被使用一次,所以我可以让我的年轻一代变大,而我的老一代变小。 我已经尝试了不同的JVM值,但似乎无法找到正确的组合,以便在没有正确的分析的情况下使其工作。 我已经阅读了所有关于调优的Heroku文档,但没有用。 有没有人对此有任何想法,或者可能指出我正确的方向? 编辑 我仍然无法使远程监控工作,但是在完整的CG之前和之后,我的本地测试系统有一些转储。 {Heap before GC invocations=1747 (full 0): PSYoungGen total 42496K, used 42496K [0x00000000f5560000, 0x00000000fded0000, 0x0000000100000000) eden space 42176K, 100% used [0x00000000f5560000,0x00000000f7e90000,0x00000000f7e90000) from space 320K, 100% used [0x00000000fde80000,0x00000000fded0000,0x00000000fded0000) to space […]

使用带有ScalaObjectMapper的Jackson模块在Spark 1.4.0上运行作业时出错

我正在运行一个用Scala 2.10.4编写并在Spark 1.4.0集群上运行的spark作业(基于HDFS并使用YARN管理)并在Maven存储库上使用Jackson模块版本2.6.1 在我的IDE(IntelliJ IDEA v14)本地运行代码时,一切都在内存群集上运行,但在我的远程群集(AWS VPC上的EMR群集)上运行作业时,我收到以下exception: java.lang.AbstractMethodError: com.company.scala.framework.utils.JsonParser$$anon$1.com$fasterxml$jackson$module$scala$experimental$ScalaObjectMapper$_setter_$com$fasterxml$jackson$module$scala$experimental$ScalaObjectMapper$$typeCache_$eq(Lorg/spark-project/guava/cache/LoadingCache;)V at com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper$class.$init$(ScalaObjectMapper.scala:50) at com.company.scala.framework.utils.JsonParser$$anon$1.(JsonParser.scala:14) at com.company.scala.framework.utils.JsonParser$.(JsonParser.scala:14) at com.company.scala.framework.utils.JsonParser$.(JsonParser.scala) at com.company.migration.Migration$.printAllKeys(Migration.scala:21) at com.company.migration.Main$$anonfun$main$1.apply(Main.scala:22) at com.company.migration.Main$$anonfun$main$1.apply(Main.scala:22) at scala.collection.Iterator$$anon$13.hasNext(Iterator.scala:371) at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:327) at org.apache.spark.util.collection.ExternalSorter.insertAll(ExternalSorter.scala:199) at org.apache.spark.shuffle.sort.SortShuffleWriter.write(SortShuffleWriter.scala:56) at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:70) at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:41) at org.apache.spark.scheduler.Task.run(Task.scala:70) at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:213) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) 我试图查看网页上的例外,没有运气。 我也尝试在这里找一个类似的问题,发现只有一个线程没有可接受的答案,没有一个答案帮助我。 希望在这里找到帮助, 谢谢。

Java类中的Scala getter和setter

我想创建一个遵循Scala setters / getters约定的Java类。 我试过跟随简单的类,但它不起作用: public class JavaA { private int a = 0; public int a() { return a; } public void a_$eq(int a) { this.a = a; } } 但是当我尝试从scala访问它时: val x = new JavaA xa = 1 我得到“重新分配给val”错误消息。 我试图寻找这个,但是我发现从scala到java的另一个问题。 这样做的正确方法是什么? 谢谢!

如何在IntelliJ IDE中集成Spark和Scala项目?

我正在使用IntelliJ IDE来使用Scala和Spark。 在这个IDE中,我使用Scala对象创建了一个Scala项目(见图)。 我使用了此网站上的示例回归代码。 我还从GitHub下载了Spark Framework作为非Maven用户(如此处所述)。 我的问题是如何将此Spark框架与我的Scala项目相关联? 我还需要集成一些额外的库才能使用Spark MLLib吗?

Play!Framework中的批量HTTP请求

我实现了当前的一组路由(例如): GET /api/:version/:entity my.controllers.~~~~~ GET /api/:version/:entity/:id my.controllers.~~~~~ POST /api/:version/:entity my.controllers.~~~~~ POST /api/:version/:entity/:id my.controllers.~~~~~ DELETE /api/:version/:entity my.controllers.~~~~~ POST /api/:version/search/:entity my.controllers.~~~~~ 而且他们工作得很漂亮。 现在让我们说我想为同一个API实现“批处理终结点”。 它应该看起来像这样: POST /api/:version/batch my.controllers.~~~~~ 身体应该是这样的: [ { “method”: “POST”, “call”: “/api/1/customer”, “body”: { “name”: “antonio”, “email”: “tonysmallhands@gmail.com” } }, { “method”: “POST”, “call”: “/api/1/customer/2”, “body”: { “name”: “mario” } }, { “method”: “GET”, “call”: […]

Spark Java中的移动平均线

我有实时流数据进入火花,我想对该时间序列数据进行移动平均预测。 有没有办法在Java中使用spark实现它? 我已经提到过: https : //gist.github.com/samklr/27411098f04fc46dcd05/revisions和Apache Spark Moving Average,但这些代码都是用Scala编写的。 由于我不熟悉Scala,我无法判断我是否会发现它有用甚至将代码转换为Java。 在Spark Java中是否有直接的预测实现?