Tag: scala

loggingScala 2.10macros

我将从一个例子开始。 这里有一个相当于List.fill的元组作为Scala 2.10中的一个macros: import scala.language.experimental.macros import scala.reflect.macros.Context object TupleExample { def fill[A](arity: Int)(a: A): Product = macro fill_impl[A] def fill_impl[A](c: Context)(arity: c.Expr[Int])(a: c.Expr[A]) = { import c.universe._ arity.tree match { case Literal(Constant(n: Int)) if n < 23 => c.Expr( Apply( Select(Ident("Tuple" + n.toString), "apply"), List.fill(n)(a.tree) ) ) case _ => c.abort( c.enclosingPosition, "Desired arity must […]

我可以在Scala中压缩两个以上的列表吗?

鉴于以下Scala列表: val l = List(List("a1", "b1", "c1"), List("a2", "b2", "c2"), List("a3", "b3", "c3")) 我怎样才能得到: List(("a1", "a2", "a3"), ("b1", "b2", "b3"), ("c1", "c2", "c3")) 由于zip只能用来组合两个列表,我认为你需要以某种方式迭代/减less主列表。 毫不奇怪,以下是不起作用的: scala> l reduceLeft ((a, b) => a zip b) <console>:6: error: type mismatch; found : List[(String, String)] required: List[String] l reduceLeft ((a, b) => a zip b) 任何build议一个如何做到这一点? 我想我错过了一个非常简单的方法来做到这一点。 更新:我正在寻找一个解决scheme,可以采取每个M元素的N列表列表,并创build一个M […]

Scala中符号文字的一些用例是什么?

符号文字的使用从我在Scala上读过的内容中并不是很清楚。 有人愿意分享一些真实世界的用途吗? 是否有一个特定的Java成语被符号文字覆盖? 哪些语言有相似的结构? 我来自Python的背景,不知道有什么类似的语言。 什么会激励我使用“HelloWorld vs”HelloWorld“? 谢谢

如何定义DataFrame的分区?

我已经开始在Spark 1.4.0中使用Spark SQL和DataFrame。 我想要在Scala中的DataFrames上定义一个自定义分区,但没有看到如何做到这一点。 我正在处理的其中一个数据表包含一个交易清单,按照以下示例,帐户silimar。 Account Date Type Amount 1001 2014-04-01 Purchase 100.00 1001 2014-04-01 Purchase 50.00 1001 2014-04-05 Purchase 70.00 1001 2014-04-01 Payment -150.00 1002 2014-04-01 Purchase 80.00 1002 2014-04-02 Purchase 22.00 1002 2014-04-04 Payment -120.00 1002 2014-04-04 Purchase 60.00 1003 2014-04-02 Purchase 210.00 1003 2014-04-03 Purchase 15.00 至less在最初,大部分计算将发生在账户内的交易之间。 所以我想分区的数据,以便一个帐户的所有交易在同一个Spark分区。 但我没有看到一个方法来定义这个。 DataFrame类有一个名为“repartition(Int)”的方法,您可以在其中指定要创build的分区数。 但是我没有看到任何可用于为DataFrame定义定制分区的方法,例如可以为RDD指定的方法。 源数据存储在Parquet中。 […]

Scala常量的命名约定?

Scala常量的命名约定是什么? 一个简单的searchStackOverflowbuild议大写CamelCase(下面的第一行),但我想仔细检查。 val ThisIsAConstant = 1.23 val THIS_IS_ANOTHER_CONSTANT = 1.55 val thisIsAThirdConstant = 1.94 哪个是Scala风格的推荐?

如何防止java.lang.OutOfMemoryError:在Scala编译PermGen空间?

我注意到了我的scala编译器的一个奇怪的行为。 编译类时偶尔会引发OutOfMemoryError。 这里是错误信息: [info] Compiling 1 Scala source to /Users/gruetter/Workspaces/scala/helloscala/target/scala-2.9.0/test-classes… java.lang.OutOfMemoryError: PermGen space Error during sbt execution: java.lang.OutOfMemoryError: PermGen space 它只发生一次,通常不会在随后的编译运行时抛出错误。 我使用Scala 2.9.0并通过SBT编译。 有没有人有线索,可能是什么原因造成这个错误? 提前感谢您的见解。

斯卡拉元组拆包

我知道这个问题已经以不同的方式出现过很多次了。 但是我还是不清楚。 有没有办法做到以下几点。 def foo(a:Int, b:Int) = {} foo(a,b) //right way to invoke foo foo(getParams) // is there a way to get this working without explicitly unpacking the tuple?? def getParams = { //Some calculations (a,b) //where a & b are Int }

我怎样才能使用地图,并在斯卡拉接收索引?

是否有任何内置的列表/序列的行为像map并提供元素的索引?

在Scala中val-mutable与var-immutable

在Scala中有没有关于什么时候对可变集合使用val与将不可变集合使用var的指导? 或者你应该真正的目标为val与一个不可改变的集合? collections这两种types的事实给了我很多的select,而且我经常不知道如何做出这样的select。

如何在不运行SBT的情况下编译testing

有没有办法用SBT构buildtesting而不运行它们? 我自己的用例是通过使用一个scalac插件在testing代码上运行静态分析。 另一个可能的用例是使用一个独立的运行程序运行部分或全部testing代码,而不是内置在SBT中的运行程序。 理想情况下,这个问题的解决scheme将适用于任何SBT项目。 例如,Maven有一个testing编译命令,可以用来编译testing而不运行它们。 如果SBT有同样的事情,那将是非常棒的。 不太理想,但仍然非常有帮助,将是涉及修改项目的构build文件的解决scheme。