почему я получаю строки с нулевыми значениями, когда я пытаюсь создать представление из файла JSON в спарк с Java - PullRequest
0 голосов
/ 19 октября 2019

Я читаю JSON-файл и создаю представление в искре с Java, когда я пытаюсь отобразить, что он отображает две дополнительные строки, начинающиеся и заканчивающиеся нулевыми значениями

Я пробовал с разными вариантами строки многострочно true, ноон не работает

 class Something
 {
   public void DoSomething() {
    SparkSession session = SparkSession.builder().appName("jsonreader")
    .master("local[4]").getOrCreate();

    Dataset<Row> jsondataset = session.read()
                                     .json("G:\\data\\employee.json");
    jsondataset.select("id","name","age").show();
      }
}

+----+-------+----+
|  id|   name| age|
+----+-------+----+
|null|   null|null|
|1201| satish|  25|
|1202|krishna|  28|
|null|   null|null|
+----+-------+----+


{
   {"id" : "1201", "name" : "satish", "age" : "25"}
   {"id" : "1202", "name" : "krishna", "age" : "28"}
}

- это мой json-файл, и я выкладываю строки с нулевыми значениями, как указано выше
Может ли кто-нибудь помочь мне, почему я получаю вот так

1 Ответ

0 голосов
/ 19 октября 2019

Это связано с дополнительными фигурными скобками. Вам придется обрабатывать это либо перед чтением JSON, либо после чтения, т.е. через spark. Также NULL читаются как строки, не совсем NULL. Ниже мой обходной путь, условие фильтра будет однозначно идентифицировать эти ошибочные строки из-за того, что «null» является строкой. :

jsondataset = jsondataset.select("age","id","name").filter("age <> 'null'")
jsondataset.show()

// Result 
//   +---+----+-------+
//   |age|id  |name   |
//   +---+----+-------+
//   |25 |1201|satish |
//   |28 |1202|krishna|
//   +---+----+-------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...