2016-11-14 2 views
0

Я пытаюсь прочитать образец Json-файла через Apache Spark, во время этого процесса я заметил, что вам нужно сохранить весь объект json в одну строку. Если я держу весь объект json в одной строке, код работает хорошо, иначе получая исключение.чтение данных json через Apache Spark

Это моя JSON данные:

[ 
    { 
     "id": 2, 
     "name": "An ice sculpture", 
     "price": 12.50, 
     "tags": ["cold", "ice"], 
     "dimensions": { 
      "length": 7.0, 
      "width": 12.0, 
      "height": 9.5 
     }, 
     "warehouseLocation": { 
      "latitude": -78.75, 
      "longitude": 20.4 
     } 
    }, 
    { 
     "id": 3, 
     "name": "A blue mouse", 
     "price": 25.50, 
     "dimensions": { 
      "length": 3.1, 
      "width": 1.0, 
      "height": 1.0 
     }, 
     "warehouseLocation": { 
      "latitude": 54.4, 
      "longitude": -32.7 
     } 
    } 
] 

Это мой код:

SparkSession session = new SparkSession.Builder().appName("JsonRead").master("local").getOrCreate(); 
     Dataset<Row> json = session.read().json("/Users/mac/Desktop/a.json"); 
     json.select("tags").show(); 

В случае небольших наборов данных, его хорошо, любой другой способ для обработки больших массивов данных в формате JSON?

+0

В какое исключение вы попадаете? – MaxNevermind

+0

Исключение в потоке «main» org.apache.spark.sql.AnalysisException: не удается разрешить «теги» с учетом входных столбцов: [_corrupt_record]; – user4342532

ответ

1

посмотреть документ: http://spark.apache.org/docs/2.0.1/sql-programming-guide.html#json-datasets

JSON наборы данные

Обратите внимание, что файл, который предлагается в виде файла JSON не является типичным файлом в формате JSON. Каждая строка должна содержать отдельный автономный действительный объект JSON. Как следствие, обычный многострочный файл JSON чаще всего терпит неудачу.