gpt4 book ai didi

sql - 将数据帧添加到 Spark 中的列表

转载 作者:行者123 更新时间:2023-12-04 22:19:04 24 4
gpt4 key购买 nike

我正在尝试根据一个的数据创建“n”dataframes。我正在检查 columndataframe 的整数值,并循环 sql 语句以在列中创建与 dataframes 一样多的“n”Integers

这是我的代码:

val maxvalue = spark.sql("SELECT MAX(column4) as maxval FROM mydata").collect()(0).getInt(0)
for( i <- 0 to maxvalue){
var query = "SELECT column1,colum2,colum3 FROM mydata WHERE column4 = "+ i
val newdataframe = spark.sql(query)
//add dataframe to List

}

我需要创建“n” dataframes 但我不知道如何在循环之前声明 List 类型并填充到 for 中。

现有的 dataframe 数据类型:
// +------------+------------+------------+------------+
// | column1| column2| column3| column4|
// +------------+------------+------------+------------+
// | String| Double| Int| Int|
// +------------+------------+------------+------------+

新的 dataframes 数据类型:
// +------------+------------+------------+
// | column1| column2| column3|
// +------------+------------+------------+
// | String| Double| Int|
// +------------+------------+------------+

最佳答案

您可以创建一个可变列表并填充它:

val dfs = mutable.ArrayBuffer[DataFrame]()
for( i <- 0 to maxvalue){
val query = "SELECT column1,colum2,colum3 FROM mydata WHERE column4 = "+ i
val newdataframe = spark.sql(query)
dfs += newdataframe
}

但是更好的方法(不使用可变数据结构)是将整数列表映射到 DataFrame 列表中:
val dfs: Seq[DataFrame] = (0 to maxvalue).map { i => 
spark.sql("SELECT column1,colum2,colum3 FROM mydata WHERE column4 = " + i)
}

关于sql - 将数据帧添加到 Spark 中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41956153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com