PySpark: форматирование JSON перед вводом в DataFrame - PullRequest
0 голосов
/ 14 апреля 2020

Я хочу создать фрейм данных Spark, содержащий список помеченных твитов из нескольких отдельных файлов JSON. Я попытался просто использовать spark.read.json(files, multiLine=True), но в некоторых файлах я получаю _corrupted_record, есть что-то, что Spark, похоже, не нравится в формате (JSON действительно, я проверил).

Ниже приведено представление формата каждого JSON объекта в файле, с которым я имею дело:

{"annotator": {
  "eventsAnnotated" : [ {...} ],
  "id" : "0939"
},
"events": [
{"eventid": "039393",
"tweets": [
{
  "postID" : "111",
  "timestamp" : "01/01/01",
  "categories" : [ "Category" ],
  "indicatorTerms" : [ ],
  "priority" : "Low",
  "text" : "text"
},
...]

Однако меня интересует только tweets раздел JSON и может игнорировать eventid или что-либо, включенное в annotator:

"tweets": [
{
  "postID" : "111",
  "timestamp" : "01/01/01",
  "categories" : [ "Category" ],
  "indicatorTerms" : [ ],
  "priority" : "Low",
  "text" : "text"
},
...]

Я бы хотел, чтобы это закончилось в кадре данных Spark, в котором postID, timestamp, categories, indicatorTerms, priority и text - мои столбцы, и каждая строка соответствует одной из этих JSON записей.

Я думаю, что я спрашиваю, как можно Я прочитал эти файлы в какую-то временную структуру, где я могу построчно транслировать каждый твит, а затем преобразовывать его в фрейм данных Spark? Я видел некоторые сообщения о СДР, но сумел запутаться, я довольно новичок в Spark в целом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...