gpt4 book ai didi

scala - 在 JSON 中读取字典

转载 作者:行者123 更新时间:2023-12-04 15:53:47 28 4
gpt4 key购买 nike

这是我的 JSON

[{"dict": {"key": "value1"}}, {"dict": {"key": "value2"}}]

这是我的解析代码:
val mdf = sparkSession.read.option("multiLine","true").json("multi2.json")
mdf.show(false)

这输出:
+--------+
|dict |
+--------+
|[value1]|
|[value2]|
+--------+

我想查看名称-值对?键和值。

我该怎么做呢?

谢谢

最佳答案

如果您只想扩展数据 select dict.* (请注意,该选项名为 multiline 而不是 multiLine ):

val df = spark.read.option("multiline", "true").json("multi2.json")
df.select($"dict.*").show

// +------+
// | key|
// +------+
// |value1|
// |value2|
// +------+

如果您想将其视为字典,只需提供架构:
import org.apache.spark.sql.types._

val schema = StructType(Seq(
StructField("dict", MapType(StringType, StringType))
))

val dfm = spark.read
.schema(schema)
.option("multiline", "true")
.json("multi2.json")

dfm.show
// +------------------+
// | dict|
// +------------------+
// |Map(key -> value1)|
// |Map(key -> value2)|
// +------------------+

如果你想要每行一对,只需分解结果:
import org.apache.spark.sql.functions._

dfm.select(explode(col("dict"))).show
// +---+------+
// |key| value|
// +---+------+
// |key|value1|
// |key|value2|
// +---+------+

关于scala - 在 JSON 中读取字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49656889/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com