PySpark删除分隔符之前的值并保留重复的键值对

2024-07-05 14:21:49 发布

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

我有一个RDD,它在分隔符下划线(''之前有一些字符)。我需要遍历每个键并删除分隔符之前的所有内容,包括下划线,并保留重复的键值对(如果有)。我有一些代码可以删除重复项,但这行不通。您可以看到第二条记录中的“bin1”和“None”将具有相同的键值,因此在函数之后删除了一个键值。以后我需要通过键来保持这些值的重复。下面是我的RDD和输出代码:

RDD样本

>>> rdd3.take(2)
[{u'bin1_11394071': 1, u'bin1_11052103': 1, u'bin1_11052101': 1}, {u'bin1_11847272': 10, u'bin1_999999': 1, u'None_11847272': 10}]

函数删除分隔符前的字符串

^{pr2}$

Tags: 函数字符串代码none内容记录字符键值
1条回答
网友
1楼 · 发布于 2024-07-05 14:21:49

你可以试试这个。定义一个函数(这个函数称为trim_prefix),它返回元组列表,而不是像这样的字典:

def trim_prefix(x):
    l = []
    for k,v in x.iteritems():
        l.append((k.split('_')[1],v))
    return l

然后根据函数运行地图:

^{pr2}$

这将产生元组列表,而不是字典列表:

rdd4.take(2)

[[(u'11394071', 1), (u'11052103', 1), (u'11052101', 1)],
[(u'11847272', 10), (u'999999', 1), (u'11847272', 10)]]

相关问题 更多 >