我想跳过列表索引之外的行,即只保留与给定索引匹配的行。
以下是我的数据,
12,34,5,6,7,8,.......
23,45,657,78,34,.......
0,2,34
15,78,65,78,9,...
我想在我的数据集中提取字段x [0],x [1],x [2],x [3] ,有些行有较少的字段,它会抛出列表索引超出范围,所以我想跳过索引<3的行。我怎么能在spark python中实现这个目标
我试过了,
def takeOnly3fields(data):
for row in data:
if not len(row) <=3:
return ",".join(row)
ff = file1.map(takeOnly3fields)
print(ff.collect()) will return NULL,NULL,NULL
答案 0 :(得分:1)
如果数据是单维的,以下是您需要的代码:
def takeOnly3fields(data):
return ",".join(data) if len(data)>3 else None
map将为您迭代整个数据,您只需要对数据集进行转换功能。