现在我是spark sql的初学者(在scala lang中)。我想运行查询。使用镶木地板文件真的能提升性能吗是否需要将数据库(Oracle)中的镶木地板文件或读取数据放入HDFS以执行火花查询?哪一个是正确的方法呢?
答案 0 :(得分:2)
我可以肯定地说,与通过JDBC连接器读取Oracle等RDBMS相比,从HDFS读取镶木地板文件更具可扩展性。原因就是数据本地化 - 如果你在相同的主机上运行你的Spark执行器,HDFS数据节点位于这些主机上,并且可以在没有网络开销的情况下有效地将数据读入内存。 见https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-data-locality.html 和 How does Apache Spark know about HDFS data nodes? 了解更多详情。
此外,Parquet格式是柱状的,并且比传统的RDBMS作为OLAP存储具有优势(特别是当数据稀疏时)。简短比较:https://www.wikiwand.com/en/Column-oriented_DBMS#/Benefits