我应该在spark sql中使用哪一个以获得更好的性能,从Parquet文件中读取数据还是从数据库中读取数据?

时间:2016-04-22 06:36:49

标签: scala apache-spark-sql

现在我是spark sql的初学者(在scala lang中)。我想运行查询。使用镶木地板文件真的能提升性能吗是否需要将数据库(Oracle)中的镶木地板文件或读取数据放入HDFS以执行火花查询?哪一个是正确的方法呢?

1 个答案:

答案 0 :(得分:2)

我可以肯定地说,与通过JDBC连接器读取Oracle等RDBMS相比,从HDFS读取镶木地板文件更具可扩展性。原因就是数据本地化 - 如果你在相同的主机上运行你的Spark执行器,HDFS数据节点位于这些主机上,并且可以在没有网络开销的情况下有效地将数据读入内存。 见https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-data-locality.htmlHow does Apache Spark know about HDFS data nodes? 了解更多详情。

此外,Parquet格式是柱状的,并且比传统的RDBMS作为OLAP存储具有优势(特别是当数据稀疏时)。简短比较:https://www.wikiwand.com/en/Column-oriented_DBMS#/Benefits