如何在 pyspark 数据框中读取 csv 文件时读取选定的列?
Posted
技术标签:
【中文标题】如何在 pyspark 数据框中读取 csv 文件时读取选定的列?【英文标题】:How to read selected columns while reading csv file in pyspark dataframe? 【发布时间】:2021-03-04 04:56:31 【问题描述】:我在读取 csv 文件时尝试读取选定的列。假设 csv 文件有 10 列,但我只想读取 5 列。有没有办法做到这一点?
我们可以使用 usecols
的 Pandas,但 pyspark 中是否也有可用的选项?
熊猫:
df=pd.read_csv(file_path,usecols=[1,2],index_col=0)
派斯帕克:
?
【问题讨论】:
这能回答你的问题吗? How to read specific column in pyspark? 但是如何直接读取呢? 【参考方案1】:如果要读取前 5 列,可以在读取整个 CSV 文件后选择前 5 列:
df = spark.read.csv(file_path, header=True)
df2 = df.select(df.columns[:5])
【讨论】:
我们可以在读取 csv 文件时使用“选择”选项吗? 我不这么认为。但是,这不会导致性能下降,因为 CSV 文件是延迟读取的。只会读取前 5 列,因为您只选择了前 5 列。 但先读取文件,然后选择 5 列。我认为这个过程也需要一些时间。 由于Spark的惰性求值,文件没有被读取,所以不会花时间。以上是关于如何在 pyspark 数据框中读取 csv 文件时读取选定的列?的主要内容,如果未能解决你的问题,请参考以下文章