Python中文
首页
教程
问答
标签
搜索
登录
注册
按(K,V)对归约和按V排序
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我是pyspark和RDDs的新手。如果这个问题很简单,我道歉。你知道吗</p> <p>我已使用以下代码映射和清理数据:</p> <pre><code>delay = datasplit.map(lambda x: ((x[33], x[8], x[9]))).filter(lambda x: x[0]!= u'0.00').filter(lambda x: x[0]!= '') </code></pre> <p>但现在我需要转换成以下输出:</p> <pre><code>(124, u'"OO""N908SW"') (432, u'"DL""N810NW"') </code></pre> <p>其中,当按x[8]和x[9]的组合分组时,第一个是上述<code>x[33]</code>的和</p> <p>我已经完成了映射并得到了下面的输出(很接近)</p> <pre><code>lines = delay.map(lambda x: (float(x[0]), [x[1], x[2]])) </code></pre> <p>输出:</p> <pre><code>[(-10.0, [u'OO', u'N908SW']),(62, [u'DL', u'N810NW]), (-6.0, [u'WN', w'N7811F'])] </code></pre> <p>但是我不知道如何减少或组合<code>x[1]</code>和<code>x[2]</code>来创建上面显示的输出。你知道吗</p> <p>提前谢谢。你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您可以创建如下所示的密钥,并应用<code>reduceByKey</code>,然后映射以获取统一密钥:</p> <pre><code>from operator import add result = delay.map(lambda x: ((x[1], x[2]), x[0])) \ .reduceByKey(add).map(lambda x: (x[0][1] + x[0][2], x[1])) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何合并多个PDF文件?
6 回答
如何合并多个xarray数据变量及其坐标?
4 回答
如何合并多个列中具有重复值的行
5 回答
如何合并多个唯一id
7 回答
如何合并多个图纸并使用图纸名称的名称重命名列名?
5 回答
如何合并多个字典并添加同一个键的值?(Python)
1 回答
如何合并多个搜索结果文件(pkl)以将它们全部打印在一起?
8 回答
如何合并多个数据帧
1 回答
如何合并多个数据帧并使用Pandas为假人添加列?
9 回答
如何合并多个数据帧并按时间戳排序
4 回答
如何合并多个数据帧的列表并用另一个lis标记每列
1 回答
如何合并多个数据框中的列
1 回答
如何合并多个文件?
1 回答
如何合并多个查询集?
8 回答
如何合并多个绘图?
1 回答
如何合并多个词典
8 回答
如何合并多个输入数据集(数据帧)?
1 回答
如何合并多条记录中拆分的文本行
8 回答
如何合并多索引列datafram
6 回答
如何合并多级(即多索引)数据帧?
9 回答