使用 Spark 2.0 将 csv 读入 RDD



我想使用 Spark 2.0 将 csv 文件读入 RDD。我可以使用

df = session.read.csv("myCSV.csv", header=True,)

我可以将其加载为文本文件,然后使用

import csv
rdd = context.textFile("myCSV.csv")
header = rdd.first().replace('"','').split(',')
rdd = (rdd.mapPartitionsWithIndex(lambda idx, itr: itr.drop(1) if idx == 0 else itr)
.mapPartitions(lambda x: csv.reader(x))
)

有没有办法使用内置的csv阅读器(spark-csv)直接进入RDD,而不必从数据帧转换为csv?或者,也许上面的RDD方法已经足够好了,因为内置的阅读器在引擎盖下做了类似的事情?

编辑:1)同样,我不想读入数据帧然后转换为RDD。这将建立一个完整的结构,只是为了立即将其丢弃。似乎毫无意义。2)是的,我可以对上述方法进行计时(针对DF ->RDD转换),但这只会告诉我我的RDD读取解决方案是否比转换更好。内置的csv到RDD方法很可能比上面的代码更优化。

您可以使用.rdd将数据帧转换为 rdd

,如下所示
rdd = session.read.csv("myCSV.csv", header=True).rdd

相关内容

  • 没有找到相关文章