hadoop - Apache Spark 将文件与 SQL 数据进行比较

标签 hadoop parallel-processing apache-spark

我将使用 Apache Spark 处理大文本文件,其中处理周期是将文本部分与大 SQL 表中的数据进行比较的一部分。

任务是:

1) Process files and break text into pieces
2) Compare pieces with database ones

瓶颈肯定是SQL。我是 Apache Spark 的新手,虽然我确定 Subtask #1 是“他的人”,但我不完全确定 子任务 #2 可以由 Spark 处理(我的意思是,以高效的方式)。

问题是 Spark 如何在并行和分布式环境中处理来自大 SQL 的可迭代选择(也许,尽可能多地缓存?)?

最佳答案

作为每个请求的答案发布:

如果您需要重复处理来自 SQL 数据源的数据,我通常觉得值得使用 Sqoop将数据拉入 HDFS,以便我的处理可以更轻松地运行。这在我开发数据流时特别有用,因为我经常会在短时间内多次对一个数据样本运行相同的作业,如果它已被 sqooped,我就不必访问数据库每次服务器。

如果您的工作是周期性/批处理方式(每日数据清理或报告等),这可能是一个足够的实现,并且在 HDFS 中收集历史数据最终可多次用于其他目的。

如果您需要实时的最新数据,那么您将需要使用 JdbcRDD ,如 this other answer 中所述,它允许您将 SQL 数据源视为 Spark 数据流中的 RDD。

祝你好运。

关于hadoop - Apache Spark 将文件与 SQL 数据进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28887484/

相关文章:

java - Spark : Cogroup RDDs fails in case of huge group

hadoop - 如何使用 Hive 将 '\N' 字符转换为空字符串

Hadoop block 管理

python - 生成 k 大多数子集唯一的元素对

c - 如何同步多个appsink

python - 如何根据 Pyspark 中数组列中的值创建新列

hadoop - hadoop 1.0.4是否已弃用单个群集?

c++ - 云计算框架

python - 复用地址和数据在并口上显示字符串

java - Spark 将数组列分解为列