试图找出如何重载类上的括号
我有以下代码:
class App(values: Map[String,String])
{
// do stuff
}
我希望能够通过以下方式访问值映射:
var a = new App(Map("1" -> "2"))
a("1") // same as a.values("1")
这可能吗 您需要定义一个apply方法
class App(values: Map[String,String]) {
def apply(x:String) =
为什么要为以下代码获取OutOfMemoryError
Stream.from1.filtern=>1到20.forallx=>n%x==0。head流对JVM有一些限制。您在这里看到的问题是,使用Stream.from1创建的流被放在堆栈上,因此JVM拒绝对其进行垃圾收集。传递给过滤器调用的谓词允许流增长到232792560个元素
如果使用迭代器,可以绕过此限制:
Iterator.from(1).filter(n => (1 to 20).forall(x => n % x ==
我的方法定义如下
def processLine(tokens: Array[String]) = tokens match { // ...
假设我想知道第二个字符串是否为空
case "" == tokens(1) => println("empty")
不编译。我该怎么做呢?case语句不是这样工作的。这应该是:
case _ if "" == tokens(1) => println("empty")
对于您的示例,模式匹配可能不是正确的选择。您可以简单地执行以下操作:
我从ubuntu12上安装了typesafe堆栈,然后创建了一个play项目(g8 typesafehub/play scala),现在我想将scalatest或scalacheck添加到我的项目中
因此,my_app/project/plugins.sbt有以下几行:
// The Typesafe repository
resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"
/
我必须在使用蛋糕模式的项目中集成一些宏。这种模式让我们避免了数不清的进口,还有其他优势,所以我们希望保持这种模式。现在,我们在主干外测试的一些实验性宏面临一个问题。首先,让我们展示一个名为Cake的虚拟系统:
trait APiece {
class A
}
trait BPiece { this: APiece =>
def aMacro(a: A): Unit = () /* macro ??? */
}
trait CPiece { this: APiece with
可能重复:
按照我的理解,以下两个类定义是相同的。那么除了语法之外,还有什么区别呢
abstract class Container[T] {}
class IntContainer extends Container[Int] {}
abstract class Container2 { type T }
class IntContainer2 extends Container2 { type T = Int }
当我查看反编译的字节码时,我注意到第一个集合仍然具有泛型(尽管IntCo
标签: Scala
immutabilitytreemap
我想做的是能够调整TreeMap中项目的键顺序,所以
我可能可以通过一些静态数据找到一个对象,这些数据不会改变
如果贴图是展平的,则对象的位置应考虑其优先级
以下测试用例适用于numEntries=6,但不适用于大于7的值。我真的不明白那里出了什么问题,但我怀疑在一些更新/拷贝之后,树会被解除。所以,有人可以提出建议吗?是我的错还是Scala 2.9中的树形图有某种缺陷
如果循环失败,则更新
for (i <- 1 to (numEntries - 1)) {
替换为
for (i &l
有人能告诉我这个函数定义有什么问题吗
def incr[Int](l: List[Int]): List[Int] =
l.foldRight(List[Int]())((x,z) => (x+1) :: z)
Scala编译器抱怨传递给foldRight的函数体中存在类型不匹配:
<console>:8: error: type mismatch;
found : Int(1)
required: String
l.foldRight(L
我正在尝试创建一个多项目SBT构建定义。我在根项目上执行run命令时遇到问题
文件夹结构如下所示:
RootProjectFolder
|
|- build.sbt
|- project
|
|-Build.scala
|-plugins.sbt
|
| - play-webapp
Build.scala文件的内容是:
import sbt._
import Keys._
import play.Project._
object Appli
我试图为具有流畅样式返回类型的JavaAPI提供Scala包装器API。具体来说,我希望Scala尽可能依赖AnyVal实例来减少分配
我已经找到了一个方法,它可以缓和这种流畅的返回,但问题是WriteStream无法返回调用它的实际类型的类型,因此在调用write之后将无法调用AsyncFile方法
需要一个具有类型类定义的包装器,该包装器能够返回所调用对象的类型,但我还没有设法使其完全工作。首先,我似乎无法获取隐式变量并将其传递给write()方法。其次,我认为隐式包装器的定义不正确,因为我
标签: Scala
overridingprotected
我遇到了一些与case类和覆盖受保护的val相关的奇怪事情
trait T {
protected def s: String
def print(): Unit = println(s)
}
假设trait T具有受保护的def(或val)
我可以用val s覆盖此方法def s。没问题
class A(override val s: String) extends T
嗯。它编译。但是这使得s公开,因为没有受保护的关键字
class B extends T {
overrid
我正在用lift+scala开发一个web应用程序。一切都在Ubuntu Linux上运行。当我切换到Windows(生产环境)时,mvn jetty:run仍然有效,但是mvn jetty:run war不再有效,而且毫不奇怪,将war部署到jetty/tomcat在这个环境中也不起作用
下面是maven pom.xml
以下是运行mvn jetty时的错误消息:运行war或在生产环境中将其部署到jetty/tomcat服务器
系统环境变量CLASSPATH为空
mvn jetty:run
我用的是喷雾器。喷雾剂实际上很容易使用,同样的道理也适用于Slick。然而,连接到数据库的臭名昭著的灵活方式如下:
Database.forURL("jdbc:mysql://localhost:3306/SprayBlog?characterEncoding=UTF-8", user="xxxx", password="xxx", driver = "com.mysql.jdbc.Driver") withSession {
implicit session =>
我试图返回每个用户都不通用的元素序列:
val l1 = ("" , Seq( ("a" , 1) , ("b" , 2) , ("c" , 3) ) )
//> l1 : (String, Seq[(String, Int)]) = ("",List((a,1), (b,2), (c,3)))
val l2 = ("" , Seq( ("a" , 4) , ("d" , 5) , ("c
我有一个应用程序(Scala 2.10.3、Akka 2.3.1、Camel 2.13.0),它订阅JMS主题,并在特定文件可供下载时通过JMS消息得到通知。每个JMS消息都包含可通过SFTP收集的文件的名称+路径
然后,我希望能够通过SFTP获取文件,但仅获取我们已收到JMS消息的文件(以避免可能获取正在编写的文件的问题)
我想要一个适合阿克卡骆驼和消费者模型的解决方案。我已经阅读了用于SFTP端点的和的Camel选项,但我需要以下方面的帮助:
如何定义可通过&filter=…在endpoi
我正在尝试在alfresco中编写scala webscript控制器,我有以下maven依赖项:
<!--scala dependencies -->
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-compiler</artifactId>
<version>
我已经用Scala在Play框架中编写了一些代码,我发现了一个错误。它工作得很好,但我突然出错了
def index = Action { implicit request =>
Ok(views.html.Postpage.render())
}
我得到以下错误:
Cannot resolve reference Action with such signature
Type mismatch expected(Request[Anycontent]=>resultactua
使用Scala计划每X秒运行一次函数,这对我来说很有用:
import scala.concurrent.duration._
import scala.concurrent.ExecutionContext
import ExecutionContext.Implicits.global
object Driver {
def main(args: Array[String]) {
val system = akka.actor.ActorSystem("system")
解决以下问题的一种好的、有效的功能性方法是什么?在命令式风格中,这可以在线性时间内完成
给定两个排序序列p和q,f返回一个序列r(或任何集合)的三元组,其中对于r中的每个三元组(a、b、c),以下保持不变:
(abc)
以下两种情况之一适用:
a,c是两个连续的元素p,b位于q
a,c是两个连续的元素q,b位于p
实例:考虑以下两个序列:
val p = Seq(1,4,5,7,8,9)
val q = Seq(2,3,6,7,8,10)
然后f(p,s)计算以下序列:
Seq((1,2
我有一个titan db模式:
val mgmt = getManagementSystem
val guid = mgmt.makePropertyKey("guid").dataType(classOf[String]).make()
mgmt.buildIndex("byGuid",classOf[Vertex]).addKey(guid).unique().buildCompositeIndex()
mgmt.commit()
mgmt.makePropertyKey("foo").
我有
**=在此位置,我只想使用已更新的值
我怎样才能做到这一点呢?这应该可以做到
val a=列表1,2,3,4
val r=a.foldLeftList[Int]{
l、 e=>ife%2==0 e::l else l.fold0math.max_uu,uu::l
}.反向
谢谢你的回答。。但是我已经更新了这个问题。当你还没有更新的值时,在**会发生什么?预期的结果是什么?我假设4,2,7应该变成4,2,2,对吗?
var a = List (1,2,3,4,5)
a.map( e =&g
是否可以创建一个在构造函数中具有隐式的akka参与者?
具有:
及
我可以使用上下文来创建这样的角色吗
implicit val service:Service = new Service()
val someLong = 3
context.actorOf(FromConfig.props(Props(classOf[Actor], someLong)), "actor")
值得一提的是,服务无法传递给构造函数,因为可以接收多个不同的actor类,这些类使用范围中的不同隐式。在actor的伴
这个问题涉及到
我正在处理Spark中包含csv.gz文件的S3文件夹。每个csv.gz文件都有一个包含列名的标题。这已通过上述SO链接解决,解决方案如下所示:
val rdd = sc.textFile("s3://.../my-s3-path").mapPartitions(_.drop(1))
现在的问题是,某些文件的结尾似乎有换行符('\n')(我们假定不确定是哪个文件)。因此,在将RDD转换为数据帧时,我遇到了一些错误。现在的问题是:
如果每个文件的最后一行是“\n”,如何删除它?为
我们使用Pregel API为3lac顶点寻找最短路径。我们应该使每个顶点作为源顶点一次,并确定所有这些执行中的最短路径。我的代码如下所示
def shortestPath(sc: SparkContext, mainGraph: Graph[(String, String, Double), Double], singleSourceVertexFlag: Boolean) {
var noOfIterations = mainGraph.vertices.count();
// If si
我想写spark单元测试用例,我正在使用FunSuite。
但我希望我的sparkContext只初始化一次,由所有套件使用,然后在所有套件完成时终止
abstract class baseClass extends FunSuite with BeforeAndAfter{
before {
println("initialize spark context")
}
after {
println("kill spark context")
}
}
@R
我有一个带有时间戳列的DF,按此列排序。有没有办法做到这一点:对于每条记录,访问下一条记录以计算两行之间的时间差?我认为这在map函数中是不可能的,因为这两行可能在不同的节点上处理
谢谢大家! 对于Spark 1.4或更高版本,如果您可以使用配置单元上下文,以下代码可能适用于您:
import org.apache.spark.sql.hive.HiveContext
import org.apache.spark.sql.expressions.Window
import org.apache
我正在尝试使用shapeless创建一个poly2函数,它可以接受一个副积:
case class IndexedItem(
item1: Item1,
item2: Item2,
item3: Item3
)
case class Item1(name: Int)
case class Item2()
case class Item3()
object IndexUpdater {
type Indexable = Item1 :+: Item2 :+: Item3 :
我很困惑。在我现有的项目中,我无法找到extends和with之间的区别。你能帮我一下吗?在Scala中,你可以从类es(具体或抽象)和特质s继承。与只扩展一个类,但在Java中实现所需数量的接口类似,只允许继承一个类,但可以继承任意数量的trait
如果您正在扩展一个类,该类应立即跟随扩展关键字。您从中扩展的任何traits都应该跟在后面,用和关键字分隔
如果不扩展类,可以将第一个trait放在extends关键字后面,然后继续
就像在Java中一样,每个类都是Object的子类,无论您是否显
标签: Scala
apache-spark-sql
我有一个数据集,我正在将其读入spark RDD,其中日期以2016年9月的格式表示,还有20010901,在使用Case类创建RDD时,我需要将其转换为日期格式
比如说,,
案例类银行年龄:整数,职务:字符串,婚姻:字符串,教育:字符串,出生日期:20010901,财务月:2016年9月
如何将生日和FiscalMonth转换为Scala可以识别为日期的日期格式,其中日期可能是任意一种格式
我需要稍后将其拉入spark sql并对其运行一些查询。一种可能的方法:
case class Pers
标签: Scala
implicit-parameters
我有一个使用隐式参数的方法。在2种情况下,我将其转换为函数时出错:
1:
然后我得到一个堆栈溢出错误
2:
然后我得到一个错误:缺少参数类型
我必须这样写:
val f = (i:Int) => action(i)
没关系。如果“action”的参数不是隐式的,那么所有情况都是正确的。那么如何解释,我错过了什么 如果将函数的参数指定为隐式,则会邀请编译器为您提供该参数的值。那么编译器如何找到这些值呢?它查找在各种范围内声明为隐式值的相同类型的值(Int)
(为了简单起见,在本例中我只使用
我执行spark neo4j示例代码如下:
spark-shell --conf spark.neo4j.bolt.password=TestNeo4j --packages neo4j-contrib:neo4j-spark-connector:1.0.0-RC1,graphframes:graphframes:0.1.0-spark1.6 -i neo4jspark.scala
我的Scalafile:
import org.neo4j.spark._
import org.apache
我有一个元组列表和如下所示的数据
val datum =("R",89)
val dataList = Seq(("R",91),("R",95),("X",96),("S",98))
我想计算列表中元素之间的持续时间,从数据开始,结果是
res0:> Seq(("R",7) , ("X",2)) //R - 96-89 , X - 98-96
我尝试过的东西不起作用
a我使用列表上的滑动,并使用带有累加器的模式匹配来保存值。这使用了一个布尔值和一个listBuffer来不断地向列表
标签: Scala
scalatestscalacheck
在有状态测试中,提到ATM机是一个用例。要使其工作,命令需要参数,例如PIN或取款金额。在给定的示例中,类计数器中的方法没有参数
现在我的问题是如何在scalachecks状态测试中测试这样的方法:
class Counter {
private var n = 0
def inc(i: Int) = n += i
...
}
命令的run和nextState方法不提供参数。添加一个Random.nextInt将不起作用,因为在run和nextState中,值会不同,测
我正在开发一个API,用Akka HTTP将多个文件上传到S3。我目前正在使用指令,它将所有文件缓冲到磁盘。这对可以处理的文件的大小进行了限制。有其他的方法吗?我还可以如何处理多部分/表单数据请求?下面是一个简单的示例,它以文件路径列表为例,将列表转换为单个源[ByteString,389;],并使用一个将数据上载到S3的接收器运行源:
val paths = List(Paths.get("/path/to/file1"), Paths.get("/path/to/file2"))
val s
我试图定义一个递归Scala函数,它看起来像这样:
def doSomething: (List[List[(Int, Int)]], List[(Int, Int)], Int, Int) => List[Int] =
(als, rs, d, n) =>
if (n == 0) {
for (entry <- rs if (entry._1 == d)) yield entry._2
} else {
for (entry &
我想我已经初始化的第一个性别,但是它打印的是空的。我试着在学生课堂上重写它,然后打印出来
这里是结果,第三行是人们的性别产出
我认为第5.1.4节的覆盖有相关信息
…覆盖成员的绑定。。。必须包含被重写成员的绑定
此外,我相信早期的定义语法就是为了解决这个问题而设计的
constructor
zhu
null
derived constructor
zhu
zz
female
female
现在输出没有空值
我认为第5.1.4节的覆盖有相关信息
…覆盖成员的绑定。。。必须包含被重写成员的绑定
此
我有一套地图。类似于scala中的set。现在我想在scala中获取设置的键(字符串)或值(ConfigValue)。请为这个问题提出一些简单的解决方案。
谢谢您可以使用.map将集合[map.Entry[String,ConfigValue]]转换为集合[String]和/或集合[ConfigValue]。但是请注意,您可能需要先转换到列表,以避免折叠重复项。因此,如果您有
val map: Set[Map[K, V]] = ???
val keys = map.flatMap(_.keyS
我写了一份有火花的工作。工作进展顺利,没有任何问题。但是,当我查看错误日志文件时,我看到了太多类型的消息
[error] 18/11/25 17:28:14 INFO CodeGenerator: Code
generated in 16.947005 ms
及
及
有没有办法抑制这些信息。他们把我的日志文件弄得太多了
不确定spark为什么将这些报告为错误。当它们看起来像某种调试消息时。创建SparkContext的对象时,使用以下代码根据需要设置日志级别:
sparkContext.se
标签: Scala
play-reactivemongo
我的json看起来像这样
[
{"name": "AABC Register Ltd (Architects accredited in building conservation), with effect from the 2016 to 2017 tax year"},
{"name": "Academic and Research Surgery Society of"},
{"name": "Academic Gaming and Simulation in Educati
我想将成对RDD myRDD值从Iterable[Double,Double]转换为seqdouble,但是我不知道如何实现。我尝试了以下方法,但不起作用
val groupedrdd: RDD[BB,Iterable[(Double,Double)]] = RDDofPoints.groupByKey()
val RDDofSeq = groupedrdd.mapValues{case (x,y) => Seq(x,y)}
myRDD是在RddofPoints上使用groupByKey
您将add函数定义为返回Int,但不返回任何内容
更改为:
class Demo {
def add (x:Int, y:Int): Int = {
val sum = x+y
println(sum)
}
}
val vvr = new Demo
vvr.add(1,2)
现在可以将结果分配给变量
或者,您可以在函数定义中将Int更改为Unit
def add (x:Int, y:Int): Int = {
val sum = x+y
我想向dataframe追加一个现有列的新映射列,这些列以给定的公共前缀开头
例如,我输入了
{“Prefix_A”:“v_A”,“Prefix_B”:“v_B”,“Field”:“v”},
{“Prefix_A”:“v_A”,“Prefix_B”:“v_B”,“Prefix_C”:“v_C”,“Field”:“v”}
我想将所有字段与前缀“prefix_u”合并,并得到的输出
{“NewColumn”:{“Prefix_A”:“v_A”,“Prefix_B”:“v_B”},“Field”:“v
例如,我有一个简单的作者JSON:
{
"name": "string",
"articles": [
"string",
"string",
"string"
]
}
我正在定义Json读取格式:
implicit object authorFormat extends RootJsonFormat[Author] {
override def write(a: Author) = ???
override def read(json: JsVa
我在build.sbt文件中包含了空手道依赖项,我应该添加哪个文件夹结构的空手道功能文件,以及如何在Scala Play项目中进行测试?
有没有空手道Scala或Play应用程序测试的例子。基本上,我想测试我的Graphql Scala后端端点。
例如:我用这个测试黄瓜,效果很好
我尝试在setshell中运行test命令
我的build.sbt具有以下功能:,
“com.intuit.karate”%“空手道核心”%“0.9.3”
以及使用哪个文件夹结构来放置我的功能文件以及如何运行scala
我试图读取大型csv文件,该文件有一个单独的文件,其中包含列的标题,如下例
示例CSV part_000.CSV(管道分隔):
示例头文件\u头:
如何读取CSV文件并使用头文件分配架构?您可以基于头文件创建架构,然后使用架构读取数据:
def defineType(str: String): DataType = {
str match {
case "date" => DateType
case "integer" => IntegerType
这就是我在数据帧中对两个枢轴列使用的方法,在数据帧中,我连接两个列,然后进行转置
// Define a udf to concatenate two passed in string values
val concat = udf( (first: String, second: String) => { first + " " + second } )
def main (args: Array[String]) {
// pivot using concatenated
标签: Scala
lazy-evaluation
下面是scala第5章中取自fp的流类型定义
sealed trait Stream[+A]
case object Empty extends Stream[Nothing]
case class Cons[+A](h: () => A, t: () => Stream[A]) extends Stream[A]
我们可以编写以下方法,该方法将返回
def constant[A](a: A): Stream[A]
标签: Scala
mutabilitypass-by-name
我正在尝试链接迭代器:
var it=Iterator(1)
它,下一个
it=迭代器(2)+it
它,下一个
它是下一个
这将在hasNext上无限循环,如下所示:
如果运行此命令并在堆栈无限循环时检查堆栈,则堆栈在concetentation中循环:
at scala.collection.Iterator$ConcatIterator.merge(Iterator.scala:213)
at scala.collection.Iterator$Concat
假设我有一个像这样的对象:
object MyObj {
def apply(args: List[String])(implicit v: Int): Unit => Int = (_: Unit) => args.length + v
}
如果我想申请MyObj.apply,我必须:
implicit val v = 5
val myObj = MyObj(List("a", "b", "c"))
myObj()
我很难理解猫flatTap的用途是什么
def flatTap[B](f: A => F[B]): F[A] = typeClassInstance.flatTap[A, B](self)(f)
事实上,我只是想挖掘一个用于记录的效果的值,然后返回该效果
看来scala 2.13 tap是一个不错的选择。但是,如果有这样的效果,我们需要进行测试:
(Right(2).withLeft[Throwable]).tap(....)
关于如何在不太复杂的情况下实现这一点的任何建议,例如引入高
1 2 3 4 5 6 ...
下一页 最后一页 共 990 页