我怎样才能像这样格式化数据?

2024-03-28 18:38:29 发布

您现在位置:Python中文网/ 问答频道 /正文

注意:这个问题与Spark使用Python(Python)有关,而不仅仅是普通Python。它使用RDD对象,而不仅仅是简单的Python列表。你知道吗

所以,我有一份演员名单和他们的电影演员名单。我想创造关键-价值对,关键是演员,价值是他工作的电影。数据格式是这样的,你有一个演员标签与他工作的电影分开。如果他在更多的电影中工作,例如,在Abalov Eduard的案例中,额外的电影列在它下面的行中。我已经按照下面的格式从文件中提取了数据。但是,我希望演员的名字出现在他拍摄的所有电影中,这样我就可以调用map函数来创建键值对。例如,对于阿巴洛夫·爱德华德,我希望他的名字出现在他所有的电影中。例如

[u'', u'', u'', u'Severnaya rapsodiya (1974)']

我想要

[u'Abalov, Eduard', u'Severnaya rapsodiya (1974)']

我该怎么做?我需要使用mappartitions吗?还是有更简单的方法来实现这一点?你知道吗

[
[u'Abalos, Rogelio', u'', u'Sa pagitan ng dalawang mata (1963)  <22>'], 
[u''], 
[u'Abalos, Ronald A.', u'Alchemy (2013)  [Group Member]  <21>'], 
[u''], 
[u'Abalos, Tarzan', u'', u'Bagong buwan (2001)  [MILF Group]  <82>'], 
[u''], 
[u'Abalov, Eduard', u'', u'Chistye prudy (1965)  (as E. Abalov)'], 
[u'', u'', u'', u'Novye priklyucheniya neulovimykh (1968)  (as E. Abalov)'], 
[u'', u'', u'', u'Severnaya rapsodiya (1974)'], 
[u'', u'', u'', u'Stoyanka poyezda - 2 minuty (1972) (TV)'], 
[u'', u'', u'', u'Stryapukha (1965)  (as E. Abalov)'], 
[u'', u'', u'', u'"12 stulev" (1977)  (as E. Abalov)'], 
[u''], 
[u'Abalyan, I.', u'', u'Ne delayte biskvity v plokhom nastroenii (2003)']
]

Tags: 电影asgroup名字关键spark价值rdd
1条回答
网友
1楼 · 发布于 2024-03-28 18:38:29
actordata = [[u'.....' ]]
clean_data = [] 
last_actor = None
for item in actordata: 
   if len(item) < 1: # ignore the [u''] 
      continue
   last_actor = item[0] if item[0] != u'' else last_actor
   clean_data.append([last_actor, item[-1]] )

相关问题 更多 >