Как проверить наличие файла / папки с помощью pyspark без исключения - PullRequest
1 голос
/ 09 апреля 2019

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

from pyspark.sql import *
from pyspark.conf import SparkConf
SparkSession.builder.config(conf=SparkConf())
try:
    df = sqlContext.read.format('com.databricks.spark.csv').option("delimiter",",").options(header='true', inferschema='true').load('/FileStore/tables/HealthCareSample_dumm.csv')
    print("File Exists")
except IOError:
    print("file not found")`

Когда у меня есть файл, он читает файл и «печатает файл существует», но если файл не существует, он будет выдавать «AnalysisException»: 'Путь не существует: dbfs: /FileStore/tables/HealthCareSample_dumm.csv;' "

Ответы [ 3 ]

3 голосов
/ 09 апреля 2019
fs = sc._jvm.org.apache.hadoop.fs.FileSystem.get(sc._jsc.hadoopConfiguration())
fs.exists(sc._jvm.org.apache.hadoop.fs.Path("path/to/SUCCESS.txt"))
1 голос
/ 09 апреля 2019

приятно видеть вас на StackOverFlow.

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

Если вы хотите проверить, существует ли файл или нет, вам нужно обойти абстракцию FS Spark и получить прямой доступ к системе хранения (будь то s3, posix или что-то еще).Недостатком этого решения является отсутствие абстракции - как только вы измените свою базовую FS, вам нужно будет также изменить свой код.

0 голосов
/ 09 апреля 2019

Похоже, вы должны изменить except IOError: на except AnalysisException:.

В большинстве случаев Spark генерирует ошибки / исключения, отличные от обычного python.Он не выполняет типичные операции Python IO при чтении файла, поэтому имеет смысл выдать другое исключение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...