我正在尝试创建“n”dataframes
根据一的数据。我正在检查 a 的整数值column
in dataframe
并循环创建“n”的sql语句dataframes
像......一样多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|
// +------------+------------+------------+------------+
The new 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
}
但更好的方法(不使用可变数据结构)是map将整数列表放入 DataFrame 列表中:
val dfs: Seq[DataFrame] = (0 to maxvalue).map { i =>
spark.sql("SELECT column1,colum2,colum3 FROM mydata WHERE column4 = " + i)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)