将自动生成的字段添加到数据框

时间:2017-10-24 15:45:59

标签: scala apache-spark apache-spark-sql

我有这个数据框,它包含值

val cabArticleLocal = spark.load("jdbc", Map("url" -> url, "dbtable" -> "cabarticle"))
cabArticleLocal.show
root
 |-- is_enabled: boolean (nullable = true)
 |-- cab_article: long (nullable = true)
 |-- article_id: long (nullable = true)

 +----------+-----------+----------+
 |is_enabled|cab_article|article_id|
 +----------+-----------+----------+
 +----------+-----------+----------+

将插入具有此结构的PostgreSQL数据库

id 
is_enabled
cab_article
article_id 

如何在数据框中生成字段ID,以将自动生成的ID插入到现有数据帧中。 谢谢

+----------+-----------+----------+---+
|is_enabled|cab_article|article_id| id|
+----------+-----------+----------+---+
+----------+-----------+----------+---+

1 个答案:

答案 0 :(得分:0)

您可以使用> p <- heatmap(m) > p$rowInd [1] 3 1 6 2 4 5 7 > p$colInd [1] 6 4 5 1 2 3 7 功能作为以下内容

monotonically_increasing_id

或者您可以使用import org.apache.spark.sql.functions._ cabArticleLocal.withColumn("id", monotonically_increasing_id()) 功能而不是row_number功能

Window

或者您可以使用查询语言

import org.apache.spark.sql.functions._
import org.apache.spark.sql.expressions.Window
cabArticleLocal.withColumn("id", row_number().over(Window.orderBy("article_id")))