我正在尝试将JSON文件的大目录转换为CSV文件。但是,在将这些JSON文件转换为CSV或友好格式的Dataframe之前,我需要对它们进行转换并剪切它们。这是由transform_json
函数完成的。
下面是一个有效的解决方案,但由于json.loads
/ json.dumps
的后面和后四位,感觉很傻和慢。
rdd = (spark_context.textFile('*.json')
.map(json.loads)
.flatMap(transform_json)
.map(json.dumps))
(spark_session.read.json(rdd)
.write.format("com.databricks.spark.csv")
.option("header", "true")
.save("output_dir"))
我需要让它们通过PySpark Dataframe,因为我事先并不知道所有的列,而Spark会为我处理。
如何改进此代码?
答案 0 :(得分:-1)
看来你想要合并架构? 您可以使用Parquet阅读: http://spark.apache.org/docs/latest/sql-programming-guide.html#schema-merging