Json 使用PySpark,我们如何根据由某个列值定义的不同模式输出文件?
我使用pySpark(Spark 2.1.0)并在S3中有事件日志文件 事件日志具有json格式(每行表示有效的json),每行具有Json 使用PySpark,我们如何根据由某个列值定义的不同模式输出文件?,json,apache-spark,pyspark,spark-dataframe,Json,Apache Spark,Pyspark,Spark Dataframe,我使用pySpark(Spark 2.1.0)并在S3中有事件日志文件 事件日志具有json格式(每行表示有效的json),每行具有Event\u id属性。其余属性的变化很大程度上取决于事件\u id e、 g.) {“事件id”:“1001”,“帐户id”:1,“名称”:“John”} {“事件id”:“1004”,“帐户id”:2,“采购id”:5,“采购数量”:1} 如果我立即将这个json文件加载到DF中,似乎所有列都作为所有行的模式属性包含在内。但我想要实现的是将输入JSON数据
Event\u id
属性。其余属性的变化很大程度上取决于事件\u id
e、 g.)
{“事件id”:“1001”,“帐户id”:1,“名称”:“John”}
{“事件id”:“1004”,“帐户id”:2,“采购id”:5,“采购数量”:1}
如果我立即将这个json文件加载到DF中,似乎所有列都作为所有行的模式属性包含在内。但我想要实现的是将输入JSON数据划分到每个event_id的行中,使用拼花格式为每个event_id设置适当的模式,然后单独保存文件以从仪表板分析每个事件
我提出了一个解决方案,指定每个模式并加载整个json文件的次数与事件id的数量相同,但我认为这是不有效的。我也可以允许包含所有行,但我不确定这是否是常见的方法
有什么惯用且有效的方法来实现这一点吗