pyspark 映射问题 - 拆分后索引超出范围

问题描述 投票:0回答:1

当尝试将 6 列 pyspark RDD 映射到 4d 元组时,除了返回正常结果的 0 之外,任何列表元素都会出现列表超出范围错误。

数据集的结构如下:

X,Y,FID,DIVISION,LOCATION,PREC

-118.289241553,33.7576608970001,1,HARBOR,2175 JOHN S. GIBSON BLVD.,5

rdd3 = sc.textFile('hdfs://path/data.csv')

header3 = rdd3.first()
rdd3 = rdd3.filter(lambda line: line!=header3)\
       .map(lambda row: row.split(","))\
       .map(lambda row: (row[0],row[1],row[3],row[5])) \
       .collect()

例如,如果我们只保留

row[0]
,则不会出现错误,但如果我们保留
row[1]
,则会抛出列表超出范围异常。就像
row.split(",")
没有返回 6 元素列表一样,而它应该返回。

这是例外Exception

有什么想法吗?

python hadoop pyspark rdd
1个回答
0
投票

看起来您要解决的问题可以通过数据帧接口更好地解决:

df = spark_session.read.csv('hdfs://path/data.csv', header=True)

res = df.select('X', 'Y', 'DIVISION', 'PREC').collect()
© www.soinside.com 2019 - 2024. All rights reserved.