2015-11-18 76 views
2

为了装载大型SQL数据星火转化& ML其中这些下面的选项是在性能方面更好。
选项1:使用Spark SQL JDBC连接器将SQLData直接加载到Spark。
选项2:使用Sqoop以csv格式将SQLData加载到HDFS,然后使用Spark从HDFS读取数据。的Apache Sqoop和Spark

请提出这一个好方法上面的加载到星火大型SQL数据。

回答

3

我从来没有用过Squoop但答案很可能取决于你的使用情况。对于您想要从Spark中查询某些关系SQL数据的单个作业,您应该只使用内置的JDBC连接器。这就是分析数据库的要点:这是一种以统一结构存储大量记录的方式,可以快速,准确地查询。

如果你有你的SQL数据库和星火集群之间的网络限制,并跑了很多不在结果数据集工作,试图尽量减少请求到数据库它可能是有意义的数据第一次转让。如果您的数据库和群集位于单独的防火墙后面,那么可能需要构建复制任务的一个实际示例(听起来不适用于您的情况)。

另一个说明。如果您决定首先需要将数据复制到文件中,则可能应该查看CSV的替代方法。研究像Parquet这样的格式可能带来的一些好处,特别是如果您希望传输/存储/查询极大的柱状数据集。

+0

非常感谢。 是的,正如你所提到的我们的数据库和群集在不同的防火墙下,并希望减少对SQL DB的请求数量。 我会尝试Parquet文件格式。谢谢 – Kazhiyur

+0

@Kazhiyur伟大的,这可能是有道理的尝试。如果您可以绕过防火墙,则可以随时尝试将JDBC直接作为后续优化。如果我已经回答了问题,请随时将其标记为已接受/已付费。 – Chet