1 回答

TA貢獻1852條經驗 獲得超1個贊
你的理解是正確的。要回答您的主題中的問題,我會說這只是一個(不是很)不幸的命名。
coalesce()
正如您所指出的,作為 RDD 或 Dataset 方法旨在減少分區(qū)數量。谷歌的字典是這樣說的:
聚集在一起形成一個質量或整體。
或者,(作為及物動詞):
將(元素)組合成一個整體或整體。
RDD.coalesce(n)
或DataFrame.coalesce(n)
使用后一種含義。
pyspark.sql.functions.coalesce()
我相信是Spark自己實現的常用SQL函數COALESCE
,很多RDBMS系統(tǒng)都實現了,比如MS SQL或者Oracle。正如您所注意到的,這個 SQL 函數既可以在程序代碼中直接調用,也可以在 SQL 語句中調用,它返回第一個非空表達式,就像其他 SQL 發(fā)行版的實現一樣。
在這種情況下,coalesce
并不孤單。諸如rtrim
, trunc
,之類的函數date_add
都可以在許多其他 RDBMS 發(fā)行版中找到,并且(至少就我所見)是非常標準的。
有一種方法可以將“coalesce”解釋為“come together...”,意思是這個實現是什么(參數合并為一個、null 或第一個 non-null)
換句話說,兩者之間的主要聯(lián)系是意義。即使我對親密的實現細節(jié)不是很熟悉,我也無法猜測 and 之間存在實現級別的關系RDD.coalesce
,functions.coalesce
就像RDD.coalesce
and之間的關系一樣DataFrame.coalesce
。
添加回答
舉報