如何从Spark Dataframe中的AWS S3读取多个文件?

时间:2018-10-12 16:04:38

标签: scala apache-spark apache-spark-sql

我在S3存储桶中有一堆具有这种模式的文件

myfile_2018_(0).tab
myfile_2018_(1).tab
myfile_2018_(2).tab
..
myfile_2018_(150).tab

我想通过读取所有这些文件来创建单个Spark Dataframe。如何创建此正则表达式模式并读取文件?

文件具有标题。我正在使用Scala来完成此任务。

2 个答案:

答案 0 :(得分:2)

只需按如下所示指定全局模式(这是假设它们位于同一文件夹中):

val input = spark.read.option("header", true).csv("/path/to/data/myfile_2018_([0-9]*).tab")

答案 1 :(得分:0)

input = spark.read.format('com.databricks.spark.csv')。option(“ delimiter”,“ \ 001”)。option(“ header”,“ true”)。option(“ nullValue” ,“ null”).load(“ s3:// bucket-name / path / to / data / myfile_2018_([0-9] *).tab”,schema = in_schema)

in_schema -如果需要,您可以传递自己的模式,否则可以删除此选项。

如果需要该文件夹中存在的所有文件且模式相同,则可以直接从上面的文件夹中读取。

input = spark.read.format('com.databricks.spark.csv')。option(“ delimiter”,“ \ 001”)。option(“ header”,“ true”)。option(“ nullValue” ,“ null”).load(“ s3:// bucket-name / path / to / data /”)