Union isect merge 等区别
1、在集合计算的时候,如和,并,交等操作。
spl 判断交集的时候,是所有字段都相等,才认为集合相等。还是根据主键相等判断为相等?
2、isect 与 & 的含义一样吗
3、union 是否与并集含义一样,即与 & 是否一样?
4、merge 按照指定字段合并,不会全部字段进行对比,只根据指定字段进行对比,这样的效率是否比 union 所有字段对比效率要高?
5、merge 在使用的时候,一定要有序集合啊。如果无序,有些例子上好像也可以,那么有序与无效的集合,对于 merge 有什么区别?
6、有哪一个方法,能实现,不同的结构的数据集进行合并吗?
记录的比较默认是比较对象的哈希值,像和、并、交这类函数如果集合的成员是记录,都是先用哈希值比较的。这种运算通常是用于从同一个序表过滤出了多个排列,然后对这些排列做集合交、并等运算。union 这类函数和 & 这类运算符含义是一样的。
A.merge(x,…) 函数是一个特例,merge 函数约定如果没有指定 x 参数则默认用 r.v()来比较,如果指定了主键则 r.v() 返回的是主键值否则则返回所有字段值。merge 函数默认约定数据是按比较字段有序的,如果数据是无序的则需要用 @o 选项指明。merge 支持结构不同,但需要设置了主键或者归并字段名是相同的。