我有一个像这样的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 |
+--------------+-------+-------+-------------+
答案 0 :(得分:2)
您可以使用select重新排列列。
df = df.select('new_column','col1','col2','col3')
df.show()
答案 1 :(得分:0)
df.select(['new_column', 'col1', 'col2', 'col3'])
答案 2 :(得分:0)
您始终可以使用select
对spark DataFrame中的列进行重新排序,如this post所示。
在这种情况下,您还可以使用select
和alias
一步实现预期的输出,如下所示:
df = df.select(lit(0).alias("new_column"), "*")
从逻辑上讲,它等效于以下SQL代码:
SELECT 0 AS new_column, * FROM df
答案 3 :(得分:0)
您可以使用INSERT函数
[45]
谢谢