Kaz*_*yur 3 apache-spark apache-spark-sql
为了将大型 SQL 数据加载到 Spark 进行转换和 ML,以下哪个选项在性能方面更好。
选项 1:使用 Spark SQL JDBC 连接器将 SQLData 直接加载到 Spark。
选项2:使用Sqoop以csv格式将SQLData加载到HDFS,然后使用Spark从HDFS读取数据。
请提出将大型 SQL 数据加载到 Spark 的好方法。
我从未使用过 Squoop,但答案可能取决于您的用例。对于您想要从 Spark 查询一些关系 SQL 数据的单个作业,您应该只使用内置的 JDBC 连接器。这就是分析数据库的全部意义所在:它是一种存储大量具有统一结构的记录的方法,可以快速准确地查询这些记录。
如果您的 SQL 数据库和 Spark 集群之间存在网络限制,并且正在从结果数据集运行大量作业,并试图尽量减少对数据库的请求,那么首先传输数据可能是有意义的。一个可能值得构建复制任务的实际示例(听起来它不适用于您的情况)可能是您的数据库和集群位于单独的防火墙后面。
另一注。如果您决定需要先将数据复制到文件中,您可能应该查看 CSV 的替代方案。查看 Parquet 等格式可能提供的一些好处,特别是如果您希望传输/存储/查询一个非常大的面向列的数据集。
| 归档时间: |
|
| 查看次数: |
8416 次 |
| 最近记录: |