Tag: scala

如何找出我正在使用哪个Play版本?

有点愚蠢的问题,但我用Activator开始玩的框架,现在需要看看我使用的是什么版本。 2.3出来支持docker,但是当我把 dockerExposedPorts in Docker := Seq(9000, 9443) 在我的build.sbt ,它抱怨它不知道dockerExposedPorts是什么,所以我想我可能会运行2.2。

在Apache Spark中将Dataframe的列值提取为List

我想将一个数据框的string列转换为列表。 我可以从Dataframe APIfind的是RDD,所以我试着先将它转换回RDD,然后将toArray函数应用于RDD。 在这种情况下,长度和SQL工作得很好。 不过,我从RDD获得的结果在每个元素周围都有方括号[A00001] 。 我想知道是否有一个适当的方式将列转换为列表或删除方括号的方法。 任何build议,将不胜感激。 谢谢!

什么时候应该使用scala.util.DynamicVariable?

当我读到scalatra的源码时,发现有一些代码是这样的: protected val _response = new DynamicVariable[HttpServletResponse](null) protected val _request = new DynamicVariable[HttpServletRequest](null) 有一个名为DynamicVariable的有趣的类。 我已经看过这个类的文档,但是我不知道什么时候以及为什么要使用它。 它有一个通常使用的withValue() 。 如果我们不使用它,那么我们应该用什么代码来解决它解决的问题? (我是新来的Scala,如果你可以提供一些代码,这将是伟大的)

我怎样才能轻松得到一个斯卡拉案例类的名字?

鉴于: case class FirstCC { def name: String = … // something that will give "FirstCC" } case class SecondCC extends FirstCC val one = FirstCC() val two = SecondCC() 我怎样才能从one.name和"SecondCC"从two.name获得"FirstCC" ?

Scala函数式编程比传统编码慢吗?

在我创buildfunction代码的第一次尝试之一,我遇到了性能问题。 我从一个共同的任务开始 – 将两个数组的元素相乘并总结结果: var first:Array[Float] … var second:Array[Float] … var sum=0f; for (ix<-0 until first.length) sum += first(ix) * second(ix); 这是我改革工作的方式: sum = first.zip(second).map{ case (a,b) => a*b }.reduceLeft(_+_) 当我对这两种方法进行基准testing时,第二种方法需要40倍的时间才能完成! 为什么第二种方法需要更长时间? 我怎样才能改变工作既高效又利用函数式编程风格?

Scala PackratParser忽略失败分析器

我有一个用Scala的RegexParsers – 链接编写的parsing器 在分析深度嵌套expression式的语法时,它有一些严重的性能问题。 因此,我创build了一个混合了Scala的PackratParsers 链接 Packrat版本不具有相同的性能问题,并正确parsing语法。 但是,当我提供一个无效的语法testing,例如这个 旧的(非packrat)parsing器用于通过失败parsing器组合器正确报告“无效的规则”失败| failure("Invalid rule") | failure("Invalid rule")在这里 – 链接 当使用packratparsing器版本时,如果启用跟踪,我可以从跟踪中看到,失败的创build方式与非包装版本相同,但是PackratParser似乎忽略了这一点,并始终返回failure: Base Failure 。 使用PackratParser时,有什么不同的处理方式需要我理解?

Scala的实验性虚拟模式匹配器是什么?

最近我见到了很多关于scala的新“虚拟化”模式匹配器。 我错过了解释它实际上是什么的备忘录…

如何在Scala或Java中使用混合编码读取文本文件?

我想parsing一个CSV文件,理想情况下使用weka.core.converters.CSVLoader。 但是,我拥有的文件不是有效的UTF-8文件。 它主要是一个UTF-8文件,但一些字段值是在不同的编码,所以没有编码整个文件是有效的,但我需要parsing它。 除了使用像Weka这样的java库之外,我主要在Scala工作。 我甚至无法读取文件usin scala.io.Source:例如 Source. fromFile(filename)("UTF-8"). foreach(print); 抛出: java.nio.charset.MalformedInputException: Input length = 1 at java.nio.charset.CoderResult.throwException(CoderResult.java:277) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:337) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:176) at java.io.InputStreamReader.read(InputStreamReader.java:184) at java.io.BufferedReader.fill(BufferedReader.java:153) at java.io.BufferedReader.read(BufferedReader.java:174) at scala.io.BufferedSource$$anonfun$iter$1$$anonfun$apply$mcI$sp$1.apply$mcI$sp(BufferedSource.scala:38) at scala.io.Codec.wrap(Codec.scala:64) at scala.io.BufferedSource$$anonfun$iter$1.apply(BufferedSource.scala:38) at scala.io.BufferedSource$$anonfun$iter$1.apply(BufferedSource.scala:38) at scala.collection.Iterator$$anon$14.next(Iterator.scala:150) at scala.collection.Iterator$$anon$25.hasNext(Iterator.scala:562) at scala.collection.Iterator$$anon$19.hasNext(Iterator.scala:400) at scala.io.Source.hasNext(Source.scala:238) at scala.collection.Iterator$class.foreach(Iterator.scala:772) at scala.io.Source.foreach(Source.scala:181) 我非常乐意把所有的无效字符都扔掉,或者用一些假的replace掉。 我将有许多像这样的文本以各种方式处理,可能需要将数据传递给各种第三方库。 一个理想的解决scheme是某种全局设置,它会导致所有的低级java库忽略文本中的无效字节,这样我就可以在不修改的情况下对这些数据调用第三方库。 解: import java.nio.charset.CodingErrorAction import scala.io.Codec […]

Scala:我如何dynamic实例化对象并使用reflection调用方法?

在Scala中,dynamic实例化对象并使用reflection调用方法的最佳方法是什么? 我想做下面的Java代码的Scala相当于: Class class = Class.forName("Foo"); Object foo = class.newInstance(); Method method = class.getMethod("hello", null); method.invoke(foo, null); 在上面的代码中,类名和方法名都是dynamic传入的。 上面的Java机制可能可以用于Foo和hello() ,但是Scalatypes不能与Java的一对一匹配。 例如,一个类可以被隐式地声明为一个单例对象。 另外Scala方法允许各种各样的符号成为它的名字。 两者都是通过名称修改来解决的。 请参阅Java和Scala之间的互操作 。 另一个问题似乎是通过解决重载和自动装箱参数的匹配问题,在Scala的反思 – 天堂与地狱中描述 。

斯卡拉符号的目的?

可能重复: Scala中符号文字的一些用例是什么? Symbol的目的是什么?为什么它需要一些特殊的字面语法,比如'FooSymbol ?