[英]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.