PySpark按一个或多个选项卡拆分RDD的记录

2024-10-03 09:10:58 发布

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

我从一个输入文件创建了一个RDD,如下所示:

[u'$, Claw\t\t\t"OnCreativity" (2012)  [Himself]']
[u'$, Homo\t\t\tNykytaiteen museo (1986)  [Himself]  <25>\n\t\t\tSuuri illusioni (1985)  [Guests]  <22>']
[u'$, Steve\t\tE.R. Sluts (2003) (V)  <12>']

基于制表符'\t'分割RDD中的每条记录是很容易的,但是我希望得到的是每个记录都是基于一个或多个选项卡分割的。在

我已经尝试过对Python的常用方法,例如,当有人想要基于一个或多个制表符拆分字符串时,这些解决方案在PySpark上下文中似乎不起作用。在


Tags: 记录制表符steverddtehomoguestsclaw
1条回答
网友
1楼 · 发布于 2024-10-03 09:10:58

我不太清楚您所说的一组rdd是什么意思,但看起来您需要的是一个简单的正则表达式:

import re
pattern = re.compile("\t+")

rdd = sc.parallelize([
    u"foo\t\t\t\tbar",
    u"123\t\t\t456\t\t789\t0"
])

rdd.map(lambda x: pattern.split(x)).collect()

## [[u'foo', u'bar'], [u'123', u'456', u'789', u'0']]

相关问题 更多 >