跳过不匹配的索引行pyspark

时间:2016-09-19 09:12:59

标签: python list apache-spark pyspark

我想跳过列表索引之外的行,即只保留与给定索引匹配的行。

以下是我的数据,

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

1 个答案:

答案 0 :(得分:1)

如果数据是单维的,以下是您需要的代码:

def takeOnly3fields(data):
    return ",".join(data) if len(data)>3 else None

map将为您迭代整个数据,您只需要对数据集进行转换功能。