@Nathan Sundararajan:
當然!這裏有一個例子如何使用Python解析JSON數據:
進口json #加載json數據從文件或字符串數據= {…}#你的JSON數據#解析JSON數據到一個Python對象obj = json.loads(數據)#使用Python語法訪問數據message_timestamp = obj (“messageTimestamp”) site_reference = obj (“siteReference”) update_count = obj (“updateCount”)更新= obj(“更新”)#迭代更新數組和訪問嵌套的數據更新在更新:event_timestamp =更新(“eventTimestamp”) spot_reference =更新(“spotReference”) spot_info =更新(“spotInfo”) vehicle_spot = spot_info vehicle_data = spot_info (“vehicleSpot”) (“vehicleData”) #根據需要訪問更多的嵌套數據……
另外,您還可以使用火花SQL解析JSON數據。這裏是使用一個例子
spark.read.json()方法:
從pyspark。sql導入SparkSession #創建一個火花= SparkSession.builder SparkSession對象。瀏覽器名稱(“JSON解析”).getOrCreate() #加載JSON數據從文件或字符串數據= {…}#你的JSON數據#從JSON數據創建一個DataFrame df = spark.read.json (sc.parallelize((數據)))#注冊DataFrame作為臨時視圖df.createOrReplaceTempView (json_data) #使用火花SQL語法查詢數據結果=火花。sql(“”“選擇messageTimestamp、siteReference updateCount,更新。eventTimestamp,更新。spotReference updates.spotInfo.vehicleSpot。externalReference updates.spotInfo.vehicleSpot。狀態,updates.spotInfo.vehicleData。externalReference updates.spotInfo.vehicleData。從json_data橫向視圖狀態爆炸(更新),更新“”)#顯示結果result.show ()
這個查詢選擇的一些字段從JSON數據和爆炸的更新數組到單獨的行。您可以根據需要修改查詢訪問或多或少的數據。
你能解釋一下如何去到一個數組的. .c3fieldstrings場結構內嗎?
“字段”:{
“c3FieldStrings”:(
{
“externalReference”:“4095”,
“名稱”:“阻塞點”
},
{
“externalReference”:“禁用”,
“名稱”:“禁用”,
“價值”:“假”
},
{
:“externalReference WorkflowVehicleSpot”,
“名稱”:“點”,
“價值”:“AA18_FL5”
},
{
:“externalReference WorkflowVMT”,
“名稱”:“WorkflowVMT”
},
@Nathan Sundararajan:下麵有幫助嗎?
data ={"字段":{“c3FieldStrings”: [{“externalReference”:“4095”,“名字”:“阻塞點”},{“externalReference”:“殘疾”、“名稱”:“禁用”,“價值”:“false”}, {“externalReference”:“WorkflowVehicleSpot”、“名稱”:“現貨”,“價值”:“AA18_FL5”}, {“externalReference”:“WorkflowVMT”、“名稱”:“WorkflowVMT”}]}} c3FieldStrings =數據(“字段”)(“c3FieldStrings”)