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

时间:2017-03-21 07:44:30

标签: json apache-spark pyspark spark-dataframe

我使用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的次数,但认为这样做效率不高。我也可以允许包含所有行,但我不确定这是否是常用方式。

是否有任何惯用且有效的方法来实现这一目标?

0 个答案:

没有答案