Как использовать 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: пожалуйста, укажите размер кластера, емкость плунжера, которую вы используете, в следующий раз при упоминании вопроса об искробезопасности будет полезно ответить на лучшие ответы:)