繁体   English   中英

如何在 Spark RDD 中的 Json 中读取 Json?

[英]How to Read Json inside a Json in Spark RDD?

我有这个样本数据: 另存为test.json

{
    "memberId": "Test0001",
    "params": {"field1":"testField","field2":"testField2"}
    "withoutValueSample": {}
}

这就是我在 Spark 中的阅读方式:

val session: SparkSession = SparkSession.builder().getOrCreate()
val inputRdd: RDD[Row] = session.read.json(test.json).rdd

我知道这是获取 memberId 的方法: inputRdd.forEach(i => i.getString(0))

但是,我不知道如何获取“params”和“withoutValueSample”的值。 I tried doing the .get(<index>).asInstanceOf[JsonObject] but I'm getting this error: java.lang.ClassCastException: org.apache.spark.sql.catalyst.expressions.GenericRowWithSchema cannot be cast to io.circe.JsonObject

如何获取参数和 withoutValueSample? 谢谢。

import org.apache.spark.sql.Row

在 spark DataFrame 中,JSON 对象读取为Row对象,因此您可以访问内部 JSON ,如下所示:

  • inputRdd.forEach(i => i.getAs[Row](1))
  • inputRdd.forEach(i => i.getAs[Row]("params"))

(ps: i在你的代码里面其实也是一个Row object。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM