pyspark - 如何从 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"
}
]
}
解决方案
如果您可以使用 Spark 访问您的数据库,最好直接使用 pyspark 从数据库中提取数据。
spark.read.jdbc(...)
假设出于任何(不好的)原因,您不想读取数据库,而只想读取与表具有相同架构的平面文件,那么您仍然可以从数据库中获取架构:
schm = spark.read.jdbc(...).load().schema
df = spark.read.csv("/path/to/csv", schema=schm)
推荐阅读
- reactjs - 在 React Js 中更改 Segment 的图标
- c# - EF Core LINQ GROUPBY 然后选择获取实体的多个属性
- python - 将数组字典转换为单个熊猫数据框
- java - 使用 DocPrintJob (Java) 进行双面打印
- node.js - 执行 npm run deploy 时不断发生错误
- python - 使用 fastapi 初始化乌龟 orm 的问题
- c++ - C++ 并发、协程和作业调度?
- ios - 测试 AuthenticationServices 的接口适配器类
- python - 错误:[Win 错误 10049] 请求的地址在其上下文中无效
- azure-notificationhub - Azure 通知中心注册推送变量