Моя цель - прочитать несколько строк из большого каталога 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