问题描述
Property ID|Location|Price|bedrooms|Bathrooms|Size|Price SQ Ft|Status
我已使用 :-
将此文件读取为 rdda = 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('|')),然后选择数组中需要的列。