создание структуры световых данных из многострочной записи

Я пытаюсь прочитать в файле событий ретроспективы в искру. Файл события структурирован как таковой.

id,TEX201403310 version,2 info,visteam,PHI info,hometeam,TEX info,site,ARL02 info,date,2014/03/31 info,number,0 info,starttime,1:07PM info,daynight,day info,usedh,true info,umphome,joycj901 info,attendance,49031 start,reveb001,"Ben Revere",0,1,8 start,rollj001,"Jimmy Rollins",0,2,6 start,utlec001,"Chase Utley",0,3,4 start,howar001,"Ryan Howard",0,4,3 start,byrdm001,"Marlon Byrd",0,5,9 id,TEX201404010 version,2 info,visteam,PHI info,hometeam,TEX 

Как вы можете видеть, для каждой игры события повторяются.

Я прочитал файл в RDD, а затем через секунду для цикла добавлен ключ для каждой итерации, который, похоже, работает. Но я надеялся получить некоторые отзывы о том, есть ли способ очистки, используя искровые методы.

 logFile = '2014TEX.EVA' event_data = (sc .textFile(logfile) .collect()) idKey = 0 newevent_list = [] for line in event_dataFile: if line.startswith('id'): idKey += 1 newevent_list.append((idKey,line)) else: newevent_list.append((idKey,line)) event_data = sc.parallelize(newevent_list) 

One Solution collect form web for “создание структуры световых данных из многострочной записи”

PySpark, так как версия 1.1 поддерживает форматы ввода Hadoop. Вы можете использовать параметр textinputformat.record.delimiter для использования разделителя пользовательского формата, как textinputformat.record.delimiter ниже.

 from operator import itemgetter retrosheet = sc.newAPIHadoopFile( '/path/to/retrosheet/file', 'org.apache.hadoop.mapreduce.lib.input.TextInputFormat', 'org.apache.hadoop.io.LongWritable', 'org.apache.hadoop.io.Text', conf={'textinputformat.record.delimiter': '\nid,'} ) (retrosheet .filter(itemgetter(1)) .values() .filter(lambda x: x) .map(lambda v: ( v if v.startswith('id') else 'id,{0}'.format(v)).splitlines())) 
  • Не удается загрузить основной класс из JAR-файла в Spark Submit
  • Создайте Spark DataFrame. Невозможно вывести схему для типа: <type 'float'>
  • Python Spark Как отображать поля одного rdd на другой rdd
  • Установите фрейм данных в платформу randomForest pyspark
  • Как использовать класс Scala внутри Pyspark
  • Сохранение RDD как файла последовательности в pyspark
  • Как читать файл Avro в PySpark
  • Spark ALS predAll возвращает пустое
  • Получить верхнюю часть n в каждой группе DataFrame в pyspark
  • тип данных для обработки больших чисел в pyspark
  • PySpark: вычислять максимальный ряд строк подмножества столбцов и добавлять к существующему фрейму данных
  • Python - лучший язык программирования в мире.