小编Vad*_*dim的帖子

如何在没有 ExecutionContext.global 和 IOApp 的情况下使用 cat 效果中的计时器?

我有一个简单的 IO 操作序列,暂停 5 秒。

  implicit val timer = IO.timer(ExecutionContext.global)

  def doSth(str: String): IO[Unit] = IO(println(str))
  def greeting(): IO[Unit] =
    doSth("Before timer.") *>
      Timer[IO].sleep(5 second) *>
      doSth("After timer")

  val a = greeting().unsafeRunAsyncAndForget()
Run Code Online (Sandbox Code Playgroud)

如何使计时器没有ExecutionContext.globalIOApp或固定线程数量ExecutionContext.global

scala spring-data-jpa scala-cats

4
推荐指数
1
解决办法
922
查看次数

将项目升级到 Scala 2.13:JavaConversions 不是集合集合的成员

我想将多模块 Maven 项目中的 Scala 版本从 2.11 升级到 2.13。我更改了pom.xml中的所有Scala版本和Scala后缀版本,更新了依赖版本。我在编译中遇到下一个错误:

 \target\generated-sources\twirl\txt\template.template.scala:12: object JavaConversions is not a member of package collection
Run Code Online (Sandbox Code Playgroud)

在目标文件夹中,我找到了旋转模板的编译对象:

import _root_.play.twirl.api.JavaScript
import _root_.play.twirl.api.Xml
....
import scala.collection.JavaConversions._
import scala.collection.JavaConverters._

object analyze_template extends _root_.play.twirl.api.BaseScalaTemplate[pla
Run Code Online (Sandbox Code Playgroud)

来自旋转模板:

@(sourceIncrementName: String, sourceSnapshotName: String)
Run Code Online (Sandbox Code Playgroud)

你能告诉我如何解决吗?

在 Maven 中,我有 scala-maven-plugin 和 twirl 插件:

            <plugin>
                <groupId>net.alchim31.maven</groupId>
                <artifactId>scala-maven-plugin</artifactId>
                <version>3.2.0</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal>
                            <goal>testCompile</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <jvmArgs>
                        <jvmArg>-Xms128m</jvmArg>
                        <jvmArg>-Xmx1024m</jvmArg>
                        <jvmArg>-XX:MaxPermSize=512m</jvmArg>
                    </jvmArgs>
                    <args>
                        <arg>-unchecked</arg>
                        <arg>-deprecation</arg>
                        <arg>-explaintypes</arg>
                        <arg>-feature</arg>
                        <arg>-language:implicitConversions</arg>
                    </args>
                    <recompileMode>incremental</recompileMode>
                    <scalaVersion>2.13</scalaVersion>
                </configuration>
            </plugin>
       <plugin>
           <groupId>com.jakewharton.twirl</groupId>
           <artifactId>twirl-maven-plugin</artifactId>
           <version>1.1.0</version>
           <executions>
               <execution> …
Run Code Online (Sandbox Code Playgroud)

scala maven twirl

4
推荐指数
1
解决办法
4609
查看次数

Scala 模块 2.10.0 需要 Jackson Databind 版本 &gt;= 2.10.0 且 &lt; 2.11.0

我有一个 sbt 项目,我想使用 scala 测试和共享 Spark 会话进行测试。几周前,我的项目开始出错。

java.lang.ExceptionInInitializerError
    at org.apache.spark.sql.execution.SparkPlan.executeQuery(SparkPlan.scala:215)
    at org.apache.spark.sql.execution.SparkPlan.execute(SparkPlan.scala:176)
.....
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Scala module 2.10.0 requires Jackson Databind version >= 2.10.0 and < 2.11.0
    at com.fasterxml.jackson.module.scala.JacksonModule.setupModule(JacksonModule.scala:61)
    at com.fasterxml.jackson.module.scala.JacksonModule.setupModule$(JacksonModule.scala:46)
Run Code Online (Sandbox Code Playgroud)

有一个非常简单的测试

import org.apache.spark.sql.QueryTest.checkAnswer
import org.apache.spark.sql.Row
import org.apache.spark.sql.test.SharedSparkSession

class SparkTestSpec extends SharedSparkSession  {
  import testImplicits._
  test("join - join using") {
    val df = Seq(1, 2, 3).toDF("int")

    checkAnswer(df, Row(1) :: Row(2) :: Row(3) :: Nil)
  }
}
Run Code Online (Sandbox Code Playgroud)

和 sbt 配置

ThisBuild / scalaVersion := "2.12.10"
val sparkVersion = "3.1.0"
val …
Run Code Online (Sandbox Code Playgroud)

scala jackson apache-spark

3
推荐指数
1
解决办法
3740
查看次数

映射将通过任何字符串键返回相同的值

我有带有输入参数映射的方法接口。我想添加当此映射通过任何字符串键返回相同值时调用此方法。您能帮我定义一个映射,该映射将通过任何字符串键返回相同的值吗?

def test(m: Map[String, Int]): Unit = {
  // some logic
}

val m = Map((???, 1))

m("")
res0: Int = 1

m("a")
res0: Int = 1

m("b")
res0: Int = 1
Run Code Online (Sandbox Code Playgroud)

collections scala

1
推荐指数
1
解决办法
120
查看次数