小编aro*_*sca的帖子

使用 json4s 时如何设置 Jackson 解析器功能?

我在尝试使用 json4s 解析 JSON 时收到以下错误:

Non-standard token 'NaN': enable JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS to allow
Run Code Online (Sandbox Code Playgroud)

如何启用此功能?

scala jackson json4s

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

如何使用json4s生成漂亮的JSON?

这段代码非常有效,但它生成了紧凑的JSON(没有换行符/不易读取).

import org.json4s.native.Serialization.write
implicit val jsonFormats = DefaultFormats

//snapshotList is a case class
val jsonString: String = write(snapshotList)
Run Code Online (Sandbox Code Playgroud)

有一种简单的方法可以从中生成漂亮的JSON吗?

我有这个解决方法,但我想知道是否存在更有效的方法:

import org.json4s.jackson.JsonMethods._
val prettyJsonString = pretty(render(parse(jsonString)))
Run Code Online (Sandbox Code Playgroud)

scala json4s

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

如何使用 Spark Structured Streaming 连接到受 Kerberos 保护的 Kafka 集群?

我正在尝试使用 Structured Streaming API 连接到受 Kerberos 保护的 Kafka 集群。下面是我的代码和 Spark 的输出。我没有看到任何异常,只是客户端断开连接的警告消息。解决此问题的下一步是什么?

import org.apache.spark.sql.SparkSession
import org.apache.log4j.{Logger, Level}

object Main {
  def main(args: Array[String]) {
    Logger.getLogger("org").setLevel(Level.WARN)
    Logger.getLogger("akka").setLevel(Level.WARN)

    val spark = SparkSession.builder()
      .master("local[*]")
      .appName("myapp")
      .config("spark.executor.extraJavaOptions", "java.security.auth.login.config=jaas.conf")
      .getOrCreate()

    import spark.implicits._

    val lines = spark.readStream.format("kafka")
      .option("kafka.bootstrap.servers", "broker1:9100,broker2:9100")
      .option("security.protocol", "SASL_PLAINTEXT")
      .option("sasl.kerberos.service.name", "mysvcname")
        .option("subscribe", "mytopic")
        .load()

    val query = lines.select("value").writeStream.format("console").start()
    query.awaitTermination()
}
Run Code Online (Sandbox Code Playgroud)

这是输出:

Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
19/02/11 17:15:06 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
19/02/11 …
Run Code Online (Sandbox Code Playgroud)

scala kerberos apache-kafka apache-spark

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

如何在 Avro IDL 中使用逻辑类型?

我在 Avro IDL 中尝试了以下代码,该代码引用了逻辑类型时间戳毫秒,但它不起作用。

在 Avro IDL 中使用逻辑类型是否需要导入?或者逻辑类型不可用,我需要使用原始类型(在本例中为 long)?

protocol test {
    record test {
        timestamp-millis time;
    }
}
Run Code Online (Sandbox Code Playgroud)

结果是:

Exception in thread "main" org.apache.avro.compiler.idl.ParseException: Undefined name 'timestamp', at line 3, column 9
Run Code Online (Sandbox Code Playgroud)

这当然有效:

protocol test {
    record test {
        long time;
    }
}
Run Code Online (Sandbox Code Playgroud)

idl avro

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

标签 统计

scala ×3

json4s ×2

apache-kafka ×1

apache-spark ×1

avro ×1

idl ×1

jackson ×1

kerberos ×1