如何将 DataFrame 列的值插入列表
Posted
技术标签:
【中文标题】如何将 DataFrame 列的值插入列表【英文标题】:How can I insert values of a DataFrame column into a list 【发布时间】:2019-09-11 12:31:01 【问题描述】:我想将 DataFrame 列(命名为预测)的值添加到列表中,这样我就可以使用该列表值编写一个 csv 文件,从而将该列进一步拆分为 3 列。
我尝试创建一个新列表并将列分配给列表,但它只添加了列的架构而不是数据。
//This is the prediction column which is basically a model stored in the Value PredictionModel
val PredictionModel = model.transform(testDF)
PredictionModel.select("features","label","prediction")
val ListOfPredictions:List[String]= List(PredictionModel.select("prediction").toString()
预期结果基本上是将列的数据分配给列表,以便进一步使用。 但实际结果只是分配给列表的列的架构,如下所示:
[预测:双倍]
【问题讨论】:
检查这个:***.com/a/57814388/6275871 【参考方案1】:你可以把整个DataFrame写成csv:
PredictionModel.select("features","label","prediction")
.write
.option("header","true")
.option("delimiter",",")
.csv("C:/yourfile.csv")
但是,如果您希望数据框作为连接的 df 列的列表,您可以试试这个:
val data = Seq(
(1, 99),
(1, 99),
(1, 70),
(1, 20)
).toDF("id", "value")
val ok: List[String] = data
.select(concat_ws(",", data.columns.map(data(_)): _*))
.map(s => s.getString(0))
.collect()
.toList
输出:
ok.foreach(println(_))
1,99
1,99
1,70
1,20
【讨论】:
以上是关于如何将 DataFrame 列的值插入列表的主要内容,如果未能解决你的问题,请参考以下文章
用列表 Pyspark Dataframe 中的值替换 NA
pandas读取csv数据为dataframe如果dataframe中相连两行数据(记录)的时间差超过指定阈值则保存时间较小行中指定数据列的值到列表中
pandas读取csv数据为dataframe如果dataframe中相连两行数据(记录)的时间差超过指定阈值则保存时间较小行中指定数据列的值到列表中