向Spark数据框添加新列

时间:2018-07-25 18:58:48

标签: apache-spark pyspark pyspark-sql

我想在已注册为表格的spark数据框中添加一列。该列需要具有自动递增的长度。

df = spark.sql(query)
df.createOrReplaceTempView("user_stories")
df = spark.sql("ALTER TABLE user_stories ADD COLUMN rank int AUTO_INCREMENT")
df.show(5)

这将引发以下错误,

Py4JJavaError: An error occurred while calling o72.sql.
: org.apache.spark.sql.catalyst.parser.ParseException: 
no viable alternative at input 'ALTER TABLE user_stories ADD COLUMN'(line 1, pos 29)

== SQL ==
ALTER TABLE user_stories ADD COLUMN rank int AUTO_INCREMENT
-----------------------------^^^

我在这里想念什么?

1 个答案:

答案 0 :(得分:1)

如果要将新的增量列添加到DF,可以通过以下方式进行。

df.show()
+-------+
|   name|
+-------+
|gaurnag|
+-------+   
from pyspark.sql.functions import monotonically_increasing_id
new_df = df.withColumn("id", monotonically_increasing_id())
new_df.show()
+-------+---+
|   name| id|
+-------+---+
|gaurnag|  0|
+-------+---+