этот ответ

аюсь прочитать файлы, присутствующие наSequence троп в скале. Ниже приведен пример (псевдо) кода:

val paths = Seq[String] //Seq of paths
val dataframe = spark.read.parquet(paths: _*)

Теперь в приведенной выше последовательности некоторые пути существуют, а некоторые нет. Есть ли способ игнорировать пропущенные пути при чтенииparquet файлы (чтобы избежатьorg.apache.spark.sql.AnalysisException: Path does not exist)?

Я пробовал нижеприведенное, и это, кажется, работает, но затем я в конечном итоге прочитал один и тот же путь дважды, что я хотел бы избежать:

val filteredPaths = paths.filter(p => Try(spark.read.parquet(p)).isSuccess)

Я проверилoptions метод дляDataFrameReader но это, кажется, не имеет никакой опции, которая похожа наignore_if_missing.

Кроме того, эти пути могут бытьhdfs или жеs3 (этоSeq передается в качестве аргумента метода) и во время чтения я не знаю, является ли путьs3 или жеhdfs так что не могу использоватьs3 или жеhdfs конкретный API для проверки существования.

Ответы на вопрос(1)

Ваш ответ на вопрос