如何使用PySpark写入多行JSON文件(无需聚合)
PySpark 无需聚合生成多行JSON的方案
用PySpark读取多行JSON很简单:
df = spark.read.option("multiline","True").json("any multiline.json")
但默认写入JSON时会生成每行一个独立对象的JSON Lines格式,要生成你示例中那种数组包裹、每个对象单独换行的多行JSON,不用聚合数据的话可以这么做:
开启Spark的JSON美化输出配置,让生成的JSON自动换行并缩进:
spark.conf.set("spark.sql.jsonGenerator.prettyPrint", "true")写入时指定
multiline选项,同时合并到单个分区(避免生成多个小文件,数据量极大时可跳过此步):df.coalesce(1).write.option("multiline", "true").json("output_multiline.json")
生成的文件会和你提供的示例格式一致:所有数据被包裹在数组中,每个对象单独占多行并带缩进,不需要手动把所有数据聚合为文本格式。
内容的提问来源于stack exchange,提问作者Amol
相关产品推荐
相关产品推荐

