Tag: scala

Java8的蛋糕模式可能吗?

我只是想知道:使用Java 8,并且可以在接口中添加实现(有点像Scala特性),是否可以实现蛋糕模式 ,就像我们在Scala中可以做的那样? 如果是,有人可以提供代码段吗?

将clojure / scala repl附加到正在运行的JVM

我有一个在Sun java 6 JVM中在tomcat下运行的java Web应用程序。 有没有办法将scala或clojure REPL附加到正在运行的JVM? 一旦webapp启动并运行,就会在正在运行的VM中设置要进行调用的上下文。 因此,这对于为增量,探索性开发和调试调用任意java方法调用非常有用。

我的混合Scala / Java Maven项目无法编译

我有一个混合的Scala / Java项目,编译得不好。 当Java代码试图在同一个包中调用Scala代码时,会出现问题。 当然,我有标准的布局: 的src /主/ JAVA 的src /主/阶 的src /测试/ JAVA 的src /测试/阶 我看过其他类似的Stackoverflow问题,但这个问题有点过时了。 这个问题也无济于事。 我还关注了scala-maven-plugin文档页面 。 net.alchim31.maven scala-maven-plugin 3.1.6 org.apache.maven.plugins maven-compiler-plugin 2.0.2 net.alchim31.maven scala-maven-plugin scala-compile-first process-resources add-source compile scala-test-compile process-test-resources testCompile org.apache.maven.plugins maven-compiler-plugin compile compile 我试过关注这篇博文并没有成功。 使用从pom.xml导入的Scala插件的IDEA项目可以成功编译和运行我的项目。 这样做的正确方法是什么? Java代码是否被编译两次? 首先是Scala插件和Java插件吗?

System.nanoTime / System.currentTimeMillis = 107(这应该是1e6吗?)

根据java.lang.System API currentTimeMillis()以毫秒为单位返回当前时间 nanoTime()返回正在运行的Java虚拟机的高分辨率时间源的当前值,以纳秒为单位。 严格来说,纳秒是1e-9,毫秒是1e-3。 因此,纳秒的持续时间必须是相同持续时间的1e6的倍数(以毫秒为单位)。 实际情况并非如此,原因是什么? scala> System.nanoTime / System.currentTimeMillis res0: Long = 107

Java关闭后的Scala优势

随着闭包被添加到Java,Scala比Java作为语言选择的优势是什么? 有人可以详细说明任何优势吗?

如何使用Spark DataFrame计算Cassandra表的汇总统计量?

我试图得到一些Cassandra / SPARK数据的最小值,最大值,但我需要用JAVA来做。 import org.apache.spark.sql.DataFrame; import static org.apache.spark.sql.functions.*; DataFrame df = sqlContext.read() .format(“org.apache.spark.sql.cassandra”) .option(“table”, “someTable”) .option(“keyspace”, “someKeyspace”) .load(); df.groupBy(col(“keyColumn”)) .agg(min(“valueColumn”), max(“valueColumn”), avg(“valueColumn”)) .show(); 编辑显示工作版本:确保“围绕someTable和someKeyspace

为什么dispatch会抛出“java.net.ConnectException:General SSLEngine …”和特定URL的“意外状态”exception?

我有以下非工作代码: object Main extends App { import dispatch._ def test(address: String) = { Await.result(Http.default(url(address).GET OK as.String), Duration.Inf) } // This works fine val s1 = test(“http://download.finance.yahoo.com/d/quotes.csv?s=MSFT&f=sohgbav”) println(s1) // This throws Exception 1 val s2 = test(“http://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=MSFT&apikey=demo&datatype=csv”) println(s2) // This throws Exception 2 val s3 = test(“https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=MSFT&apikey=demo&datatype=csv”) println(s3) } 我想知道为什么“s1”工作正常,而“s2”和“s3”抛出exception。 抛出的exception是: 例外1: [error] ! access URL […]

HDFS:使用Java / Scala API移动多个文件

我需要使用Java / Scala程序在HDFS中移动与给定正则表达式相对应的多个文件。 例如,我必须将名称为*.xml所有文件从文件夹a到文件夹b 。 使用shell命令我可以使用以下内容: bin/hdfs dfs -mv a/*.xml b/ 我可以使用Java API移动单个文件,使用以下代码(scala语言),使用FileSystem类上的rename方法: // Prepare initial configuration val conf = new Configuration() conf.set(“fs.defaultFS”, “hdfs://hdfs:9000/user/root”) val fs = FileSystem.get(conf) // Move a single file val ok = fs.rename(new Path(“a/file.xml”), new Path(“b/file.xml”)); 据我所知, Path类代表一个URI。 然后,我不能以下列方式使用: val ok = fs.rename(new Path(“a/*.xml”), new Path(“b/”)); 有没有办法通过Java / Scala API在HDFS中移动一组文件?

在Apache Spark中,我可以轻松地重复/嵌套SparkContext.parallelize吗?

我正在尝试模拟我们正试图解决的遗传问题,逐步建立起来。 我可以成功运行Spark示例中的PiAverage示例。 这个例子在一个圆圈(在我们的例子中为10 ^ 6)“投掷飞镖”并计算“在圆圈中着陆”以估计PI的数量 假设我想重复该过程1000次(并行)并平均所有这些估计值。 我试图看到最好的方法,似乎有两个并行化的调用? 嵌套电话? 有没有办法将地图链接起来或减少一起呼叫? 我看不到它。 我想知道下面这个想法的智慧。 我想过使用累加器跟踪得到的估计值。 jsc是我的SparkContext,单个运行的完整代码是在问题的结尾,感谢任何输入! Accumulator accum = jsc.accumulator(0.0); // make a list 1000 long to pass to parallelize (no for loops in Spark, right?) List numberOfEstimates = new ArrayList(HOW_MANY_ESTIMATES); // pass this “dummy list” to parallelize, which then // calls a pieceOfPI method to produce each […]

Scala到Java(函数式编程)

我被要求将一些Scala代码“翻译”为Java以用于课程。 但是,分配的要求是不允许使用 Java 8和外部库,例如Functional Java和Totally Lazy 。 Scala中的行是: charges.groupBy(_.cc).values.map(_.reduce(_ combine _)).toList 我已经能够编写groupBy和values但.map和_.reduce仍然_.reduce 。 我已经查看了这两个库的源代码以及Scala源代码,试图找到一些东西来帮助我将它们放在一起,但是我还没有取得任何进展。 GroupBy实现如下: public Map<CreditCard, List> groupBy(List list) { Map<CreditCard, List> map = new TreeMap<CreditCard, List>(); for(Charge c: list) { List group = map.get(c.cc); if(group == null) { group = new ArrayList(); map.put(c.cc, group); } group.add(c); } return map; }