создание искровой структуры данных из многострочной записи
Я пытаюсь прочитать в файле событий Retrosheet в искру. Файл событий структурирован как таковой.
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)