Scala / Spark: сгладить несколько json в RDD, используя SCALA Spark, но получая неверные данные - PullRequest
0 голосов
/ 06 августа 2020

МОЙ КОД предпочтителен в scala для сглаживания множественных json

**val data = sc.textFile("/user/cloudera/spark/sample.json")
val nospace = data.map(x => x.trim())
val nospaces = nospace.filter(x => x!="")
val local = nospaces.collect
var vline =""
var eline :List[String]= List()
var lcnt =0
var rcnt =0
local.map{x =>
vline+=x
if (x=="[") lcnt+=1
if (x=="[") rcnt+=1
if (lcnt==rcnt){
eline++=List(vline)
lcnt=0
rcnt=0
vline =""
}
}**

MY Input Sheet multiple json file:

 [
    {
    “Year”: “2013”,
    “First Name”: “JANE”,
    “County”: “A”,
    “Sex”: “F”,
    “Count”: “27”
    },{
    “Year”: “2013”,
    “First Name”: “JADE”,
    “County”: “B”,
    “Sex”: “M”,
    “Count”: “26”
    },{
    “Year”: “2013”,
    “First Name”: “JAMES”,
    “County”: “C”,
    “Sex”: “M”,
    “Count”: “21”
    }
    ]

1 Ответ

0 голосов
/ 06 августа 2020

ввод json принят

root@ubuntu:/home/sathya/Desktop/stackoverflo/data# cat /home/sathya/Desktop/stackoverflo/data/sample.json 

[
    {
    "Year": "2013",
    "First Name": "JANE",
    "County": "A",
    "Sex": "F",
    "Count": "27"
    },{
    "Year": "2013",
    "First Name": "JADE",
    "County": "B",
    "Sex": "M",
    "Count": "26"
    },{
    "Year": "2013",
    "First Name": "JAMES",
    "County": "C",
    "Sex": "M",
    "Count": "21"
    }
    ]

код для чтения json и сглаживания в виде столбцов фрейма данных

spark.read.option("multiline","true").json("file:////home/sathya/Desktop/stackoverflo/data/sample.json").show()

'''
+-----+------+----------+---+----+                                              
|Count|County|First Name|Sex|Year|
+-----+------+----------+---+----+
|   27|     A|      JANE|  F|2013|
|   26|     B|      JADE|  M|2013|
|   21|     C|     JAMES|  M|2013|
+-----+------+----------+---+----+
'''

...