如何将PySpark DataFrame保存为JSONL/JSON文件?
将PySpark DataFrame保存为JSONL(每行一个JSON)文件
PySpark的DataFrameWriter.json()方法默认生成的就是JSONL格式文件(每行一个独立JSON对象),无需转换为Pandas DataFrame,直接就能满足需求,以下是具体实现方式:
基础用法(大数据场景推荐)
默认按分区输出多个文件,每个文件内都是JSONL格式,适合处理大规模数据:
from pyspark.sql import SparkSession # 初始化SparkSession spark = SparkSession.builder.getOrCreate() # 构建示例DataFrame data = [("Alice", 25), ("Bob", 30), ("Charlie", 35)] df = spark.createDataFrame(data, ["name", "age"]) # 保存为JSONL格式 df.write.json("path/to/jsonl_output", mode="overwrite")
输出目录下会生成多个part-*.json文件,每个文件的内容均为每行一个JSON对象,符合JSONL规范。
生成单个JSONL文件(小数据场景适用)
如果需要合并为单个文件,可先将DataFrame重分区为1,再保存:
# 重分区为1后保存,生成单个JSONL文件 df.repartition(1).write.json("path/to/single_jsonl_file", mode="overwrite")
注意:大数据场景不推荐此操作,会将所有数据集中到单个节点,可能导致性能瓶颈或内存溢出。
自定义JSON格式参数
如果需要调整JSON的输出格式(比如日期格式),可通过option参数配置:
# 自定义日期格式后保存 df.write.option("dateFormat", "yyyy-MM-dd").json("path/to/formatted_jsonl", mode="overwrite")
内容的提问来源于stack exchange,提问作者tisha
相关产品推荐
相关产品推荐

