首页 > 解决方案 > 如何仅使用rdd而不是数据框从spark中的csv中获取N(th)列

问题描述

我想只使用 rdd 函数从 csv 文件中选择一列,而不是 spark 中的数据框。我已经为它编写了代码。

其他一些列具有空值。

rdd = spark.sparkContext.textFile(filename)    
rdd_parc = rdd.map(lambda x: x.split(","))
rdd1 = rdd_parc.map(lambda x: x[6] != "")

但是这个解决方案似乎不会选择第 6 列,而是选择地图的第 6 列。

样本数据:

Lachine,H,0,,,,"SUMMERLEA, PARC",FR,2016,287826.19201900001,5033164.33193000030,-73.7169573579999,45.4382054
Lachine,H,0,,,,"SUMMERLEA, PARC",FR,2016,287826.19201900001,5033164.33193000030,-73.7169573579999,45.4382054

您可以看到一些值是空的。我希望我的答案是

SUMMERLEA, PARC
SUMMERLEA, PARC

标签: pythonapache-sparkrdd

解决方案


完成尝试先使用 to 转换为 rdd

rdd = spark.read.csv(filename, header=True).rdd

然后提取第六列

rdd_parc = rdd.map(lambda x: x[6])

您将获得所需的输出


推荐阅读