首页 > 解决方案 > pyspark 将第一个 n 文件读入 df

问题描述

我正在尝试 databricks 平台,我有兴趣将前 6 个文件加载到数据框中。

数据dbfs:/mystore以文本/csv 文件的形式存储在其中。

part-00000
part-00001
part-00002
part-00003
part-00004
part-00005
part-00006
part-00007
part-00008
part-00009
part-00010

我所做的是创建一个火花会话:

spark = SparkSession.builder.appName("tester").master("local[*]").getOrCreate()

df = spark.read.csv("dbfs:/mystore/*", header='true', inferSchema='true')

但这会将所有内容读入数据框中。如何仅将前 5 个文件读00000 - 00004入数据框中?- 每个文件都很大,所以我只想玩第一个 5 个文件。

另外,由于标题在 中part-00000,我仍然可以使用header="true"read.csv?因为如果我没记错的话,spark 在创建数据帧时会分配负载,因此不会保留顺序。

标签: pythonapache-spark

解决方案


我想出了一个快速而肮脏的解决方案。

基本上使用python生成合格文件位置的列表,然后将该列表加载到spark.read.csv(list_of_file_locations)然后它就可以工作了。


推荐阅读