首页 > 解决方案 > 如何从 csv 文件生成 JSON 文件?

问题描述

我正在尝试使用 python 从 csv 文件创建一个 json 模式文件。(我正在尝试从 oracle 表元数据为我的 pyspark 代码创建一个 Json 模式文件)

fields,CURR_NBR,VARCHAR2,true
fields,CURR_AMT,NUMBER,true
fields,MILEAGE_CD,VARCHAR2,true

如何生成如下所示的 json 结构

{
  "type": "struct",
  "fields": [
    {
      "metadata": {},
      "name": "CURR_NBR",
      "nullable": true,
      "type": "string"
    },
    {
      "metadata": {},
      "name": "CURR_AMT",
      "nullable": true,
      "type": "integer"
    },
    {
      "metadata": {},
      "name": "MILEAGE_CD",
      "nullable": true,
      "type": "string"
    }
]
}

标签: pyspark

解决方案


如果您可以使用 Spark 访问您的数据库,最好直接使用 pyspark 从数据库中提取数据。

spark.read.jdbc(...)

假设出于任何(不好的)原因,您不想读取数据库,而只想读取与表具有相同架构的平面文件,那么您仍然可以从数据库中获取架构:

schm = spark.read.jdbc(...).load().schema
df = spark.read.csv("/path/to/csv", schema=schm)

推荐阅读