Какой самый быстрый способ прочитать несколько строк из большого каталога hdfs, используя spark? - PullRequest
0 голосов
/ 26 апреля 2018

Моя цель - прочитать несколько строк из большого каталога hdfs, я использую spark2.2.
Этот каталог генерируется предыдущим заданием spark, и каждая задача генерирует один маленький файл в каталоге, поэтомувесь каталог имеет размер 1 ГБ и содержит тысячи маленьких файлов.
Когда я использую collect () или head () или limit (), spark загрузит все файлы и создаст тысячи задач (мониторинг в sparkUI),что стоит много времени, даже я просто хочу показать первые несколько строк файлов в этом каталоге.
Итак, какой самый быстрый способ прочитать этот каталог?Я надеюсь, что лучшее решение - это загрузить только несколько строк данных, чтобы сэкономить время.
Ниже приведен мой код:
sparkSession.sqlContext.read.format("csv").option("header","true").option("inferschema","true").load(file).limit(20).toJSON.toString()

sparkSession.sql(s"select * from $file").head(100).toString sparkSession.sql(s"select * from $file").limit(100).toString

1 Ответ

0 голосов
/ 26 апреля 2018

Если вы хотите напрямую использовать spark, он все равно загрузит файлы, а затем примет записи.Поэтому сначала, даже до логики spark, вы должны получить одно имя файла из каталога, используя технологию ur, такую ​​как java или scala или python, и передать это имя файла в текстовый метод File, который не загружает все файлы.

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