2016-10-21 24 views
-1

我JSON數據,如圖如何在spark sql中以map的形式加載json數據?

"vScore": { 
    "300x600": { 
    "v1": "0.50", 
    "v2": "0.67", 
    "v3": "ATF", 
    "v4": "H2", 
    "v5": "0.11" 
    }, 
    "728x90": { 
    "v1": "0.48", 
    "v2": "0.57", 
    "v3": "Unknown", 
    "v4": "H2", 
    "v5": "0.51" 
    }, 
    "300x250": { 
    "v1": "0.64", 
    "v2": "0.77", 
    "v3": "ATF", 
    "v4": "H2", 
    "v5": "0.70" 
    }, 

我想,這樣的300x250成爲關鍵和嵌套V1在我想要加載vScores在地圖MAP IE的形式加載該JSON數據... V5成爲地圖的價值。 如何在斯卡拉spark sql中做到這一點?

+0

我嘗試使用read.json()來加載JSON文件,然後試圖用日電子火花SQL查詢(「選擇地圖(vscores)從DF」) – satyambansal117

回答

1
  1. 則需要使用加載數據(數據= sqlContext.read.json( 「文件」))
  2. 你可以檢查你的數據是如何加載(data.printSchema())
  3. GET與 「選擇」 查詢,usring(data.select ....)

    更多數據: How to parse jsonfile with spark

+0

但我想閱讀我的數據形式的地圖.....怎麼可能通過你的方法? – satyambansal117

+0

我們假設你已經完成了第3步,如: MYDATA =選擇(FIELD1,FIELD2)。凡(...) 您可以使用 「的foreach」 轉換數據成圖: MYMAP = mydata.map (x =>(key,value)) 這個鍵會像「x.getString(0)」 這個值有點像「x.getString(1)」 取決於你選擇的結果查詢,您可能需要分割它的每一行以獲得您的密鑰和價值。 嘗試打印選擇查詢的結果,以確定是否需要拆分數據。 –

相關問題