Pandas Dataframe可以用簡單的方式與Json相互轉換,舉一個簡單範例實作 ,用來串接API使用
以下爲簡單的dataframe與Json互轉方法, 若是Spark dataframe可以使用 pd = dataFrame.toPandas() , 轉爲pandas dataframe再進行Json轉換, 但要注意執行toPandas()指令時, 資料不可過大, 以免產生out of memory
# encoding=UTF-8 #!flask/bin/python from flask import json import pandas as pd class JsonConverter(object): def sparkDataFrameToJson(self, dataFrame): """ dataframe to Json "result": [ { "input": "eee", "time": "2017-01-05 10:04:44.054849" }, { "input": "gg", "time": "2017-01-05 10:17:51.072134" }, { "input": "from My Computer", "time": "from My Computer" }] """ pd = dataFrame.toPandas() return json.loads(pd.to_json(orient='records')) def pandasToJson(self, pdf): """ dataframe to Json "result": [ { "input": "eee", "time": "2017-01-05 10:04:44.054849" }, { "input": "gg", "time": "2017-01-05 10:17:51.072134" }, { "input": "from My Computer", "time": "from My Computer" }] """ return json.loads(pdf.to_json(orient='records')) def jsonToSparkDataFrame(self, sqlContext, json): """ Json to dataframe { "data":[{ "time": "3", "input": "2" }, { "time": "5", "input": "2" }] } """ pdf = pd.DataFrame(json) return sqlContext.createDataFrame(pdf) def jsonToPandas(self, json): """ Json to dataframe { "data":[{ "time": "3", "input": "2" }, { "time": "5", "input": "2" }] } """ pdf = pd.DataFrame(json) return pdf
若要Json轉dictionary可以使用下面方式
# JSON到字典转化: ret_dict = simplejson.loads(json_str) # 字典到JSON转化: json_str = simplejson.dumps(dict)
沒有留言:
張貼留言