Как вывести список файлов в корзину S3 с помощью Spark Session? - PullRequest
0 голосов
/ 06 января 2019

Можно ли перечислить все файлы по заданному пути S3 (например, s3: //my-bucket/my-folder/*.extension), используя объект SparkSession?

Ответы [ 2 ]

0 голосов
/ 06 января 2019

Вы можете использовать Hadoop API для доступа к файлам на S3 (Spark также использует его):

import java.net.URI
import org.apache.hadoop.fs.FileSystem
import org.apache.hadoop.fs.Path
import org.apache.hadoop.conf.Configuration

val path = "s3://somebucket/somefolder"
val fileSystem = FileSystem.get(URI.create(path), new Configuration())
val it = fileSystem.listFiles(new Path(path), true)
while (it.hasNext()) {
  ...
}
0 голосов
/ 06 января 2019

Вы можете использовать input_file_name с фреймом данных, он даст вам абсолютный путь к файлу на строку.

Следующий код даст вам все пути к файлам.

spark.read.table("zen.intent_master").select(input_file_name).distinct.collect

Я предполагаю. В вашем случае вы просто хотите прочитать данные из набора файлов с некоторым регулярным выражением, чтобы затем применить их в фильтре.

Например,

val df = spark.read.table("zen.intent_master").filter(input_file_name.rlike("your regex string"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...