我使用pySpark(Spark 2.1.0)并在S3中有事件日志文件。
事件日志具有json格式(每行代表有效的json),每行都有event_id
属性。剩余的属性差异很大程度上取决于
{"event_id": "1001", "account_id": 1, "name": "John"}
{"event_id": "1004", "account_id": 2, "purchase_id": 5, "purchase_num": 1}
。
e.g。)
@IBAction func btnShowVC(_ sender: UIButton) {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let newVC = storyboard.instantiateViewController(withIdentifier: "cvc") as? childViewController
newVc.view.frame = CGRect(x: 75, y: 0, width: 300, height: 667)
self.present(newVC!, animated: true, completion: nil)
}
如果我一次将此json文件加载到DF中,似乎所有列都包含在所有行的架构属性中。但我想要实现的是将输入的JSON数据划分到每个event_id的行中,为每个具有镶木地板格式的event_id设置正确的模式,然后单独保存文件以分析仪表板中的每个事件。
我提出了指定每个模式的解决方案,并将整个json文件加载到event_id的次数,但认为这样做效率不高。我也可以允许包含所有行,但我不确定这是否是常用方式。
是否有任何惯用且有效的方法来实现这一目标?