我正在嘗試運行 unionByName 命令來組合兩個資料幀,但是當我運行我的腳本時,日志顯示“DataFrame 物件沒有屬性 'unionByName'”。
df_new = old.unionByName(old2, allowMissingColumns=True)
我感覺這與我的 Spark 或 Python 版本有關,因為 union 作業得很好。版本為 2.2.0.cloudera1。如何使用較新版本的 Spark,甚至在現有版本中使用 unionByName 命令?
我也在我的日志中看到了這一點
File "/opt/cloudera/parcels/Anaconda-4.0.0/lib/python2.7/importlib/__init__.py", line 37, in import_module
所以我感覺我使用的是 Python 2.7?
謝謝!
uj5u.com熱心網友回復:
unionByName
2.3 版中的新功能。
uj5u.com熱心網友回復:
此函式與 union() 之間的區別在于,此函式按名稱(而不是按位置)決議列。因此,如果您可以在不更改版本的情況下通過重新排序old2DataFrame 來創建資料幀。例如,如果您的 DataFrames 如下所示:
舊(“col1”,“col2”,“col3”)
old2("col3","col1","col2")
使用類似下面的東西:
old3 = old2.select(col("col1"),col("col2"),col("col3"));
new_old = old.union(old3);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/350326.html
