Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 使用PySpark,我们如何根据由某个列值定义的不同模式输出文件?_Json_Apache Spark_Pyspark_Spark Dataframe - Fatal编程技术网

Json 使用PySpark,我们如何根据由某个列值定义的不同模式输出文件?

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数据

我使用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_id的行中,使用拼花格式为每个event_id设置适当的模式,然后单独保存文件以从仪表板分析每个事件

我提出了一个解决方案,指定每个模式并加载整个json文件的次数与事件id的数量相同,但我认为这是不有效的。我也可以允许包含所有行,但我不确定这是否是常见的方法

有什么惯用且有效的方法来实现这一点吗