微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从另一个具有所需特定列的 rdd 创建 rdd

如何解决从另一个具有所需特定列的 rdd 创建 rdd

我有一个包含以下表格数据的 spark 文件

Property ID|Location|Price|bedrooms|Bathrooms|Size|Price SQ Ft|Status

我已使用 :-

将此文件读取为 rdd
a = sc.textFile("/FileStore/tables/realestate.txt")

现在我需要从上述 RDD 创建一个具有 PropertyID、位置、价格(= 大小 * 价格 SQ Ft)的新 RDD。

我可以通过将其转换为数据帧来实现,但无法弄清楚如何使用所需的列将其转换为另一个 RDD。

解决方法

您可以使用地图获取前三列:

a = sc.textFile("/FileStore/tables/realestate.txt")
b = a.map(
    lambda x: 
    (x.split('|')[:2] + [float(x.split('|')[5]) * float(x.split('|')[6])]) 
    if x.split('|')[0] != 'Property ID'
    else ['Property ID','Location','Price']
)
,
def splitfunc(x):
    array=x.split('|')
    return [array[0],array[1],array[5]*array[6]]
#array[0] is your properties and so on..
newrdd=rdd.map(splitfunc)

使用map函数..在map函数中将rdd分割为seperator(lines.split('|')),然后选择数组中需要的列。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。