Использует ли Apache Spark JDBCRDD HDFS для хранения и распространения записей базы данных на рабочие узлы? Мы используем JdbcRDD для взаимодействия с базой данных на apache spark. Нам интересно, использует ли Apache Spark HDFS для распространения и хранения записей таблицы базы данных или рабочие узлы напрямую взаимодействуют с базой данных.
Apache Spark JDBCRDD использует HDFS?
Ответы (1)
JdbcRDD не использует HDFS, считывает данные из соединения JDBC напрямую в RDD в рабочей памяти. Если вам нужны результаты в HDFS, вам придется явно сохранить RDD в HDFS.
Вы можете увидеть, как работает JdbcRDD, здесь https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/rdd/JdbcRDD.scala
RDD должны реализовывать метод compute
, который возвращает итератор для значений каждого раздела в RDD. Реализация JdbcRDD просто обертывает итератор набора результатов JDBC:
override def getNext(): T = {
if (rs.next()) {
mapRow(rs)
} else {
finished = true
null.asInstanceOf[T]
}
}
person
mattinbits
schedule
05.08.2015