【发布时间】:2015-06-11 13:44:08
【问题描述】:
向数据框中添加一列是否可能以及最有效的简洁方法是什么?
更具体地说,列可以用作现有数据框的行 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"))
【问题讨论】:
-
您找到解决方案了吗?
-
有什么错误?这似乎是 API 中的正确方法。
-
@Chet,
withColumn应该使用相同的数据框 - 即您可以使用dataDF = dataDF.withColumn("ID", dataDF("ID").map(...))仅使用this数据框的列,而不是其他人 -
@OlegShirokikh 啊。嗯。如果该限制被记录在案,那就太好了。那么有趣的问题。我可以从 API 中看到的唯一机制是使用
join。建议增强 API 的人选不错。 -
@Chet - 对,它是任何数据框的核心功能之一。例如,它们具有一些内置功能来更新 Parquet 文件的模式。显然,在分布式环境中这是非常昂贵的操作,但无论如何 IMO 它应该在那里
标签: scala apache-spark dataframe