Как прочитать каждый объект Json в моем входном файле в строку в DataFrame spark - PullRequest
0 голосов
/ 28 декабря 2018

Я новичок в Spark и Scala, и я пытаюсь изучить искру для одного из моих учебных проектов.У меня есть файл JSON, который выглядит следующим образом:

[
  {
"year": 2012,
"month": 8,
"title": "Batman"
},
  {
"year": 2012,
"month": 8,
"title": "Hero"
 },
 {
"year": 2012,
"month": 7,
"title": "Robot"
 }
]

Я начал читать этот JSON для запуска файла DataFrame, поэтому я попытался сделать следующее:

spark.read
  .option("multiline", true)
  .option("mode", "PERMISSIVE")
  .option("inferSchema", true)
  .json(filePath)

Он читает JSON, но преобразовывает данныезажечь колонны.Мое требование состоит в том, чтобы читать каждый объект данных как один отдельный столбец.

Я хочу прочитать его в искровой DataFrame, где я ожидаю вывод, подобный следующему:

+----------------------------------------+
|json                                    |
+----------------------------------------+
|{"year":2012,"month":8,"title":"Batman"}|
|{"year":2012,"month":8,"title":"Hero"}  |
|{"year":2012,"month":7,"title":"Robot"} |
|{"year":2011,"month":7,"title":"Git"}   |
+----------------------------------------+

1 Ответ

0 голосов
/ 28 декабря 2018

Использование toJSON

val df = spark.read
  .option("multiline", true)
  .option("mode", "PERMISSIVE")
  .option("inferSchema", true)
  .json(filePath).toJSON

Сейчас

df.show(false)

+----------------------------------------+
|value                                   |
+----------------------------------------+
|{"month":8,"title":"Batman","year":2012}|
|{"month":8,"title":"Hero","year":2012}  |
|{"month":7,"title":"Robot","year":2012} |
+----------------------------------------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...