Я собираюсь использовать Apache Spark
для обработки больших текстовых файлов, где в цикле обработки участвует часть сравнения текстовых частей с данными из большой таблицы SQL.Apache Spark сравнивает файлы с данными SQL
Задача:
1) Process files and break text into pieces
2) Compare pieces with database ones
Определенно, узкое место будет SQL. Я совершенно не знаком с Apache Spark
, и хотя я уверен, что Subtask #1
«его парень», я не совсем уверен, что Subtask #2
может обрабатываться Spark (я имею в виду, эффективным способом).
Вопрос в том, как Spark
имеет дело с итерируемыми выборами из большого SQL (возможно, кеша, сколько может?) В параллельной и распределенной среде?
Было бы возможно/целесообразно использовать данные sqoop из таблиц в HDFS? Тогда ваша обработка может полностью работать с данными HDFS. – DPM
@DPM Да, может быть, хорошая заметка. Что такое Spark SQL и его метод 'cacheTable()'? – ovnia
Spark SQL предназначен для запроса RDD с использованием синтаксиса SQL. Похоже, вам нужно [JdbcRDD] (https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.rdd.JdbcRDD), если вы хотите читать данные SQL в Spark, как описано в [этом ответе] (http://stackoverflow.com/questions/26239001/reading-data-from-sql-server-using-spark-sql) – DPM