【发布时间】:2019-11-02 20:27:41
【问题描述】:
如果我这样做 select * from table1; 将检索订单数据
文件顺序或随机顺序
【问题讨论】:
标签: apache-spark hadoop hive apache-spark-sql hiveql
如果我这样做 select * from table1; 将检索订单数据
文件顺序或随机顺序
【问题讨论】:
标签: apache-spark hadoop hive apache-spark-sql hiveql
如果没有ORDER BY,则无法保证订单。
许多进程(映射器)并行读取数据,在计算拆分后,每个进程开始读取一些文件或几个文件,具体取决于计算的拆分。
所有并行进程可以处理不同的数据量,运行在不同的节点上,每次的负载不一样,所以它们开始返回行和结束的时间不同,取决于太多的因素,比如节点负载、网络负载、每个进程的数据量等。
去除所有这些因素,您可以提高订单预测的准确性。比如说,单线程顺序文件读取可能会以与文件中相同的顺序返回行。但这不是数据库的工作方式。
同样根据 Codd 的关系理论,the order of columns and rows is immaterial。
【讨论】: