apachespark/pyspark,为动态键定义自定义json模式

gfttwv5a  于 2021-05-19  发布在  Spark
关注(0)|答案(1)|浏览(424)

我有一堆json文件,假设每个文件都有以下结构:

{
    "fields": {
        "name": "Bob",
        "key": "bob"
    },
    "results": {
        "bob": { ... }
    }
}

不幸的是,虽然json的结构相当一致,但在“results”下面有一个动态键。在下定义的架构 fields 对我来说很直接。
因此,对于几个json文件,最终的模式可能是:

fieldSchema = StructField(...)
resultSchema = StructField("results", StructType([StructField("bob", ...)]))
finalSchema = StructType([fieldSchema, resultsSchema])

问题出在这条线上: StructField("bob", ...) 显然, bob 不是我要找的钥匙。这个 name 对于 StructField 理想情况下是某种通配符、正则表达式模式,或者最坏情况下是基于其他字段的动态字段。
我是一个新手,一直在搜索的文件和历史stackoverflow职位,但我一直找不到任何东西。
长话短说,我希望能够通过某种广泛的网络为 name structfield中的参数,以包含各种不同的键,类似于regex模式。

xmq68pz9

xmq68pz91#

如果我知道你想做的是从一个json文件创建一个模式,如果是这样,请参考以下链接:createsparkdataframeschemafromsjson模式表示

相关问题