首页 > 解决方案 > 获取 pyspark RDD 行的前三列

问题描述

我有一个数据为 .dat 格式的源数据集。样本数据将是这样的

1::玩具总动员 (1995)::动画|儿童|喜剧
2::勇敢者游戏 (1995)::冒险|儿童|奇幻
3::脾气暴躁的老人 (1995)::喜剧|爱情
4::等待呼气 ( 1995)::喜剧|戏剧
5::新娘之父第二部分 (1995)::喜剧
6::热 (1995)::动作|犯罪|惊悚

我创建了这个 rdd 并将其拆分为 ("::")。我需要从中拉出一个仅包含前两行的新 rdd。像下面

1 玩具总动员 (1995)
2 勇敢者游戏 (1995)
3 脾气暴躁的老人 (1995)
4 等待呼气 (1995)
5 新娘之父第二部分 (1995)
6 热火 (1995)

请建议我这样做的方法

标签: python-3.xpysparkrdd

解决方案


你可以用地图做到这一点:

rdd = sc.textFile('inputfile.dat')
rdd = rdd.map(lambda x: x.split("::")[:2])
# additionally you can join them back together
rdd = rdd.map(lambda x: " ".join(x))

推荐阅读