2016-10-21 29 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)” 取决于你选择的结果查询,您可能需要分割它的每一行以获得您的密钥和价值。 尝试打印选择查询的结果,以确定是否需要拆分数据。 –

相关问题