在Amazon S3中,我有一个包含约30个子文件夹的文件夹,每个子文件夹中都包含一个csv文件。
我想要一种简单的方法来从所有子文件夹中读取每个csv文件-目前,我可以通过指定路径n次来做到这一点,但是我觉得必须有一种更简洁的方法。
例如dataframe = sqlContext.read.csv([ path1, path2, path3,etc..], header=True)
答案 0 :(得分:1)
像这样模拟您的情况(使用jupyter magic命令,以便您可以查看文件夹结构)
...只需使用* ...还假设每个csv具有相同的cols数
! ls sub_csv/
print("="*10)
! ls sub_csv/csv1/
! ls sub_csv/csv2/
! ls sub_csv/csv3/
print("="*10)
! cat sub_csv/csv1/*.csv
! cat sub_csv/csv2/*.csv
! cat sub_csv/csv3/*.csv
csv1
csv2
csv3
==========
csv1.csv
csv2.csv
csv3.csv
==========
id
1
id
2
id
3
spark\
.read\
.option("header", "true")\
.csv("sub_csv/*")\
.show()
+---+
| id|
+---+
| 1|
| 2|
| 3|
+---+