1 回答
TA贡献1852条经验 获得超1个赞
你的理解是正确的。要回答您的主题中的问题,我会说这只是一个(不是很)不幸的命名。
coalesce()
正如您所指出的,作为 RDD 或 Dataset 方法旨在减少分区数量。谷歌的字典是这样说的:
聚集在一起形成一个质量或整体。
或者,(作为及物动词):
将(元素)组合成一个整体或整体。
RDD.coalesce(n)
或DataFrame.coalesce(n)
使用后一种含义。
pyspark.sql.functions.coalesce()
我相信是Spark自己实现的常用SQL函数COALESCE
,很多RDBMS系统都实现了,比如MS SQL或者Oracle。正如您所注意到的,这个 SQL 函数既可以在程序代码中直接调用,也可以在 SQL 语句中调用,它返回第一个非空表达式,就像其他 SQL 发行版的实现一样。
在这种情况下,coalesce
并不孤单。诸如rtrim
, trunc
,之类的函数date_add
都可以在许多其他 RDBMS 发行版中找到,并且(至少就我所见)是非常标准的。
有一种方法可以将“coalesce”解释为“come together...”,意思是这个实现是什么(参数合并为一个、null 或第一个 non-null)
换句话说,两者之间的主要联系是意义。即使我对亲密的实现细节不是很熟悉,我也无法猜测 and 之间存在实现级别的关系RDD.coalesce
,functions.coalesce
就像RDD.coalesce
and之间的关系一样DataFrame.coalesce
。
添加回答
举报