Как проверить наличие папок, прежде чем читать в Spark? - PullRequest
0 голосов
/ 17 января 2019

Я новичок в Spark Framework и мне нужен совет.

У меня такая структура папок.

reports
 - 20180101
 - 20180102
 - 20180103
   - GHWEI.csv
   - DSFSD.csv
   - GHWEI.csv

Отчеты (CSV-файлы) хранятся каждый день отдельно. Например, папка 20180103 собирает все отчеты третьего января 2018 года.

Перед чтением CSV-файлов мне необходимо проверить наличие пути. Как это сделать?

val reports = spark.read.option("delimiter", "|")
              .csv("/reports/{20180101,20180102,20180103,}/*GHWEI*")
              .orderBy("CREATE_DATE")

Прямо сейчас, если нет папки с именем 20180101, 20180102, 20180103 Ошибка Spark Raise, которая говорит, что такого пути нет. Код работает, только если одна из этих папок доступна.

Второй вопрос: как проверить, является ли значение отчета пустым или нет после прочтения?

1 Ответ

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

Я думаю, что можно проверить файл с помощью Java-SDK Hadoop FileSystem, который можно использовать в программе Scala.

Это вся документация: https://hadoop.apache.org/docs/current/api/org/apache/hadoop/fs/FileSystem.html

Ссылкаответ на вопрос, который можно адаптировать к вашему случаю: https://stackoverflow.com/a/30408153/10623105

Примечание. Чтобы уточнить, Hadoop не работает с этой папкой.Понятие папки не существует в экосистеме Hadoop.Это только файловая система ключа и значения, где ключ - это полный путь к файлу, а значение - это файл.

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