scala 相关问题

Scala是一种通用编程语言,主要针对Java虚拟机。旨在以简洁,优雅和类型安全的方式表达通用编程模式,它融合了命令式和函数式编程风格。其主要特点是:具有类型推断的高级静态类型系统;功能类型;模式匹配;隐含参数和转换;运算符重载;与Java的完全互操作性;并发

Null 和 Null & T 类型之间有什么区别,其中 T <: AnyRef?

看下面的方法 def toOption[T <: AnyRef](value: T | Null): Option[T] = value match { case null => 无 案例内容:T => Some(内容) } 如果你插入...

回答 1 投票 0

Scala:通过生成器(可迭代)公开 JDBC 结果集

我在数据库中有一组行,我想提供一个接口来旋转它们,如下所示: def findAll: 可迭代[MyObject] 我们不需要记住所有实例......

回答 4 投票 0

在 Spark 中读取 .csv 文件时如何将第二行视为标题

我想跳过第一行并从第二行开始考虑,我使用标题起始位置为2,跳过行为1,但它不起作用,因为它也将第二行作为数据加载。有人可以请...

回答 1 投票 0

无法读取 Spark 中的嵌套元素?

我正在尝试读取使用嵌套 jSON 创建的数据帧。不知何故,我无法读取嵌套键之一并出现错误。 val df=spark.read.json(Seq(""" [{ ”

回答 1 投票 0

使用已安装的spark和maven将Spark Scala程序编译成jar文件

仍在尝试熟悉maven并将我的源代码编译成jar文件以进行spark-submit。我知道如何使用 IntelliJ 来实现此目的,但想了解它实际上是如何工作的。我有...

回答 3 投票 0

如何确保分区小于maxSize?

假设我使用 SparkSession 将大型 CSV 文件(800K 行)转换为 DataFrame,如下所示: val 行 = csv.stripMargin.split(' ') val rdd = Spark.sparkContext.parallelize(行) val df = rdd.toDF

回答 1 投票 0

scala,使用类成员函数作为第一类函数

我想将类实例的成员函数作为第一类函数分配给变量: 类 A(val id:Int){ def f(u:Int)=id+u } val a=新A(0) val h=a.f // 失败:解释为 ...

回答 2 投票 0

Scala Akka Http:com.typesafe.config.ConfigException$Missing:找不到键“调度程序”的配置设置

使用scala Akka创建API,代码在IDE中运行,但是创建jar时无法运行代码: 使用 scala 2.11.12,下面是 build.sbt 此构建/版本:=“0.1.0-SNAPSHOT”

回答 1 投票 0

从增量表中过滤开始日和结束日的数据

我有一个按年、月、日分区的增量表。分区列设置为字符串。 我需要从 Delta 表中读取过去 7 天的数据。例如,如果作业在星期二运行...

回答 1 投票 0

基于类型参数重载方法

我想要一个可以使用或不使用类型参数来调用的方法,并为每个方法返回不同的值。这是一些明显简化的代码: 对象 Foo { def apply() = "你好" ...

回答 1 投票 0

为什么可以在类型字段中混合类?

为什么我可以说类型字段具有一个类的类型,其中混合了另一个类(当一个类中只能混合特征时)? 例子: scala> A 类 定义A类 scala> B 类

回答 2 投票 0

Scala:通过包外的结构类型访问包可见方法

这不能按预期工作(因为我试图从外部服务调用私有运行的包): 对象服务{ 类 HelloPrinter { 私人[服务] def run =“你好” } } 瓦尔...

回答 1 投票 0

使用 Stax2 转义 Scala 中的特殊字符

我正在尝试使用 Stax2 来编写带有转义特殊字符的属性的 xml 文件。 当我试图实现这样的精确输出时: 我正在尝试使用 Stax2 来编写带有转义特殊字符的属性的 xml 文件。 当我试图实现这样的精确输出时: <elem1 att1="This &#x0A; That" /> 但是当我使用通常的XMLStreamWriter时,输出是这样的: <elem1 att1="This &amp;#x0A; That" /> 所以我用 Stax2 尝试了以下操作: import org.codehaus.stax2.{XMLOutputFactory2} import org.scalatest.funsuite.AnyFunSuite import java.io.{File, FileOutputStream} import javax.xml.stream.{XMLOutputFactory, XMLStreamWriter} class testStreamXML extends AnyFunSuite{ val file = new File("stax2test.xml") val fileOutputStream = new FileOutputStream(file) val outputFactory: XMLOutputFactory2 = XMLOutputFactory.newInstance().asInstanceOf[XMLOutputFactory2] //outputFactory.setProperty(XMLOutputFactory2.P_ATTR_VALUE_ESCAPER, true) val writer= outputFactory.createXMLStreamWriter(fileOutputStream) writer.writeStartDocument() writer.writeStartElement("elem1") writer.writeAttribute("att1", "This &#x0A; That") writer.writeEndElement() writer.writeEndDocument() } 每当我尝试将属性 P_ATTR_VALUE_ESCAPER 设置为 true 或 false 时,我都会收到此错误: An exception or error caused a run to abort: class java.lang.Boolean cannot be cast to class org.codehaus.stax2.io.EscapingWriterFactory (java.lang.Boolean is in module java.base of loader 'bootstrap'; org.codehaus.stax2.io.EscapingWriterFactory is in unnamed module of loader 'app') java.lang.ClassCastException: class java.lang.Boolean cannot be cast to class org.codehaus.stax2.io.EscapingWriterFactory (java.lang.Boolean is in module java.base of loader 'bootstrap'; org.codehaus.stax2.io.EscapingWriterFactory is in unnamed module of loader 'app') at com.ctc.wstx.api.WriterConfig.setProperty(WriterConfig.java:401) at com.ctc.wstx.api.CommonConfig.setProperty(CommonConfig.java:100) at com.ctc.wstx.stax.WstxOutputFactory.setProperty(WstxOutputFactory.java:153) at testStreamXML3.<init>(testStreamXML3.scala:10) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:64) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) at java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128) at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:350) at java.base/java.lang.Class.newInstance(Class.java:645) at org.scalatest.tools.Runner$.genSuiteConfig(Runner.scala:1402) at org.scalatest.tools.Runner$.$anonfun$doRunRunRunDaDoRunRun$8(Runner.scala:1199) at scala.collection.immutable.List.map(List.scala:246) at org.scalatest.tools.Runner$.doRunRunRunDaDoRunRun(Runner.scala:1198) at org.scalatest.tools.Runner$.$anonfun$runOptionallyWithPassFailReporter$24(Runner.scala:993) at org.scalatest.tools.Runner$.$anonfun$runOptionallyWithPassFailReporter$24$adapted(Runner.scala:971) at org.scalatest.tools.Runner$.withClassLoaderAndDispatchReporter(Runner.scala:1480) at org.scalatest.tools.Runner$.runOptionallyWithPassFailReporter(Runner.scala:971) at org.scalatest.tools.Runner$.run(Runner.scala:798) at org.scalatest.tools.Runner.run(Runner.scala) at org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner.runScalaTest2or3(ScalaTestRunner.java:38) at org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner.main(ScalaTestRunner.java:25) 有什么建议如何解决这个问题吗?或者达到我转义属性中特殊字符的目的? 您所指的属性确实需要一个 EscapingWriterFactory 类。这是文档: 如果需要对属性值内容进行自定义输出转义,可以设置的属性。值集必须是类型 逃离WriterFactory。设置后,工厂将用于创建 每个写入器实例用于转义所有写入的属性值,两者 通过显式 XMLStreamWriter.writeAttribute(java.lang.String, java.lang.String) 方法,以及通过复制方法 (XMLStreamWriter2.copyEventFromReader(org.codehaus.stax2.XMLStreamReader2, 布尔值))。 [1] 关于如何实现“个人”逃避该工厂的实施的问题就可以完成这项工作。这是一个使用给定编写器的简单实现(受 [2] 启发),无需应用任何转义 - 这可能是您想要解决的任何特殊用例的起点: class CustomXmlEscapingWriterFactory extends EscapingWriterFactory{ override def createEscapingWriterFor(writer: Writer, s: String): Writer = new Writer(){ override def write(cbuf: Array[Char], off: Int, len: Int): Unit = writer.write(cbuf, off, len) override def flush(): Unit = writer.flush() override def close(): Unit = writer.close() } override def createEscapingWriterFor(outputStream: OutputStream, s: String): Writer = throw IllegalArgumentException("not supported") } class TestStreamXML extends AnyFunSuite{ val file = new File("stax2test.xml") val fileOutputStream = new FileOutputStream(file) val oprovider: OutputFactoryProviderImpl = new OutputFactoryProviderImpl() val outputFactory: XMLOutputFactory2 = oprovider.createOutputFactory() // your factory implementation goes here as property outputFactory.setProperty(XMLOutputFactory2.P_ATTR_VALUE_ESCAPER, CustomXmlEscapingWriterFactory()) val writer= outputFactory.createXMLStreamWriter(fileOutputStream) writer.writeStartDocument() writer.writeStartElement("elem1") writer.writeAttribute("att1", "This &#x0A; That") writer.writeEndElement() writer.writeEndDocument() } 结果输出如下所示: <?xml version='1.0' encoding='UTF-8'?><elem1 att1="This &#x0A; That"/> [1] https://fasterxml.github.io/stax2-api/javadoc/4.0.0/org/codehaus/stax2/XMLOutputFactory2.html#P_ATTR_VALUE_ESCAPER [2] 使用 jackson-dataformat-xml 转义引号

回答 1 投票 0

Scala 中可以解构输入参数吗?

有没有办法解构 Scala 中函数的输入参数(类似于 Clojure)? 所以,而不是 scala> def f(p: (Int, Int)) = p._1 f: (p: (Int, Int))Int 我想要这个(它确实...

回答 3 投票 0

是否有兼容 Scala 2 和 Scala 3 的可变参数拼接语法?

上下文 Scala 2 和 Scala 3 之间的差异之一是可变参数拼接的语法。 所以给出 def组合(字符串:字符串*):单位= { println(strings.mkString("; ")) } 瓦尔利斯...

回答 1 投票 0

操作序列过滤器的安全方法

下面代码的目的是获取id等于30的学生的姓名 类 Person(名称: String , id : Int ) val 人 = 序列( 人(“艾米丽”,10), 人(“

回答 1 投票 0

如何从右侧通过分隔符分割字符串?

如何用右侧的分隔符分割字符串? 例如 scala> "你好,你好吗?".rightSplit(" ", 1) res0: Array[java.lang.String] = Array(你好,你好吗?) Python 有一个 .r...

回答 4 投票 0

ArrayBuffer 不带此参数

我正在使用 Eclipse 进行 Scala 工作。 有人可以解释为什么我会收到此错误吗? ArrayBuffer 行中不带此参数 var ArrayBuffer1 = ArrayBuffer(1,2,3,4,5) 以下是

回答 1 投票 0

Scala Option 和 flatMap

我正在尝试掌握“Scala 方式”工作的窍门,所以我想知道下面的代码是否是在这种情况下应该如何完成的事情。 所以我有实体 User 和 Company (用 LiftWeb 映射

回答 3 投票 0

有没有办法修复删除了转义字符的无效 JSON 记录?

我们的代码中有一个错误,我们不小心从 JSON 中删除了所有转义字符,导致记录无效。我们的原始版本看起来像这样,其中元数据字段包含一个

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.