Как использовать Hadoop InputFormats в Apache Spark?

У меня есть класс ImageInputFormat в Hadoop, который читает изображения из HDFS. Как использовать свой InputFormat в Spark?

Вот мой ImageInputFormat:

public class ImageInputFormat extends FileInputFormat<Text, ImageWritable> {

    @Override
    public ImageRecordReader createRecordReader(InputSplit split, 
                  TaskAttemptContext context) throws IOException, InterruptedException {
        return new ImageRecordReader();
    }

    @Override
    protected boolean isSplitable(JobContext context, Path filename) {
        return false;
    }
}  

Ответ 1

SparkContext имеет метод hadoopFile. Он принимает классы, реализующие интерфейс org.apache.hadoop.mapred.InputFormat

В его описании говорится: "Получите RDD для файла Hadoop с произвольным входным форматом".

Также посмотрите Искра документация.

Ответ 2

Вопрос: все изображения хранятся в hadoopRDD? Ans: да, все, что будет спасено в искре, - это rdds

Вопрос: можно установить емкость RDD, и когда RDD будет заполнен, остальные данные будут сохранены на диске?

Ans: уровень хранения по умолчанию в искре (StorageLevel.MEMORY_ONLY), используйте MEMORY_ONLY_SER, что более экономично. пожалуйста, обратитесь к документации по искробезопасности > scala программирование > Надежность RDD

Вопрос: Futhermore будет влиять на производительность, если данные слишком велики? Ans: По мере увеличения размера данных это также повлияет на производительность.

PS: пожалуйста, укажите размер кластера, емкость плунжера, которую вы используете, в следующий раз при упоминании вопроса об искробезопасности будет полезно ответить на лучшие ответы:)