[英]Adding a new column in the first ordinal position in a pyspark dataframe
我有一個像這樣的pyspark數據框:
+--------+-------+-------+
| col1 | col2 | col3 |
+--------+-------+-------+
| 25 | 01 | 2 |
| 23 | 12 | 5 |
| 11 | 22 | 8 |
+--------+-------+-------+
我想通過添加一個新列來創建新的數據框,如下所示:
+--------------+-------+-------+-------+
| new_column | col1 | col2 | col3 |
+--------------+-------+-------+-------+
| 0 | 01 | 2 | 0 |
| 0 | 12 | 5 | 0 |
| 0 | 22 | 8 | 0 |
+--------------+-------+-------+-------+
我知道我可以按以下方式添加列:
df.withColumn("new_column", lit(0))
但是它最后像這樣添加列:
+--------------+-------+-------+-------------+
| col1 | col1 | col2 | new_column |
+--------------+-------+-------+-------------+
| 25 | 01 | 2 | 0 |
| 23 | 12 | 5 | 0 |
| 11 | 22 | 8 | 0 |
+--------------+-------+-------+-------------+
您可以使用select重新排序列。
df = df.select('new_column','col1','col2','col3')
df.show()
您可以使用始終重新排序火花數據幀中的列select
,如圖這篇文章 。
在這種情況下,您還可以使用select
和alias
一步實現預期的輸出,如下所示:
df = df.select(lit(0).alias("new_column"), "*")
從邏輯上講,它等效於以下SQL代碼:
SELECT 0 AS new_column, * FROM df
df.select(['new_column', 'col1', 'col2', 'col3'])
您可以使用INSERT函數
df.insert(0, 'new_column', [data,,,])
謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.