相关疑难解决方法(0)

在Apache Spark 1.3中向Data Frame附加一列

是否有可能以及将列添加到数据框的最有效的方法是什么?

更具体地,列可以用作现有数据帧的行ID.

在简化的情况下,从文件读取而不是标记它,我可以想到如下(在Scala中),但它完成了错误(在第3行),并且无论如何看起来不是最好的路线:

var dataDF = sc.textFile("path/file").toDF() 
val rowDF = sc.parallelize(1 to DataDF.count().toInt).toDF("ID") 
dataDF = dataDF.withColumn("ID", rowDF("ID")) 
Run Code Online (Sandbox Code Playgroud)

scala dataframe apache-spark

51
推荐指数
3
解决办法
8万
查看次数

Spark-Monotonically增加id在数据帧中没有按预期工作?

df在Spark中有一个数据框,看起来像这样:

scala> df.show()
+--------+--------+
|columna1|columna2|
+--------+--------+
|     0.1|     0.4|
|     0.2|     0.5|
|     0.1|     0.3|
|     0.3|     0.6|
|     0.2|     0.7|
|     0.2|     0.8|
|     0.1|     0.7|
|     0.5|     0.5|
|     0.6|    0.98|
|     1.2|     1.1|
|     1.2|     1.2|
|     0.4|     0.7|
+--------+--------+
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下代码包含id列

val df_id = df.withColumn("id",monotonicallyIncreasingId)
Run Code Online (Sandbox Code Playgroud)

但id列不是我所期望的:

scala> df_id.show()
+--------+--------+----------+
|columna1|columna2|        id|
+--------+--------+----------+
|     0.1|     0.4|         0|
|     0.2|     0.5|         1|
|     0.1|     0.3|         2|
|     0.3|     0.6|         3|
|     0.2|     0.7|         4|
|     0.2|     0.8| …
Run Code Online (Sandbox Code Playgroud)

scala apache-spark apache-spark-sql

8
推荐指数
1
解决办法
7362
查看次数

Apache Spark如何将列/数组中的新列追加到Spark数据帧

我正在使用Apache Spark 2.0 Dataframe/Dataset API我想从值列表中向我的数据框添加一个新列.我的列表具有与给定数据帧相同数量的值.

val list = List(4,5,10,7,2)
val df   = List("a","b","c","d","e").toDF("row1")
Run Code Online (Sandbox Code Playgroud)

我想做的事情如下:

val appendedDF = df.withColumn("row2",somefunc(list))
df.show()
// +----+------+
// |row1 |row2 |
// +----+------+
// |a    |4    |
// |b    |5    |
// |c    |10   |
// |d    |7    |
// |e    |2    |
// +----+------+
Run Code Online (Sandbox Code Playgroud)

对于任何想法我会很高兴,我的数据帧实际上包含更多列.

scala dataframe apache-spark apache-spark-sql

4
推荐指数
2
解决办法
9585
查看次数

标签 统计

apache-spark ×3

scala ×3

apache-spark-sql ×2

dataframe ×2