我试图dataframes
基于一个的数据创建“ n”
。我正在检查column
in的Integer值,dataframe
并循环执行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
}
但是更好的方法(不使用可变数据结构)是将整数列表 映射 到DataFrames列表中:
val dfs: Seq[DataFrame] = (0 to maxvalue).map { i =>
spark.sql("SELECT column1,colum2,colum3 FROM mydata WHERE column4 = " + i)
}
很容易将列表列表转换为数据帧: 但是我如何将df转换回列表列表呢?
问题内容: 我想知道如何在Spark(Pyspark)中实现以下目标 初始数据框: 结果数据框: 我通常使用以下方法设法将新列“追加”到数据框: 但是,我不知道如何为新列实现这种“行移位”,以便新列具有上一行的字段值(如示例中所示)。我也无法在API文档中找到有关如何通过索引访问DF中特定行的任何内容。 任何帮助,将不胜感激。 问题答案: 您可以如下使用窗口功能 但是有一些重要的问题: 如果您需要
假设我有一个数据框 和列名称列表 如何将新列添加到以零为值的数据帧中?
问题内容: 将空列添加到pandas对象的最简单方法是什么?我偶然发现的最好的东西是 有没有那么不合常理的方法? 问题答案: 如果我理解正确,则应填写作业:
我有一个来自excel电子表格的数据框,其中我找到了每个域出现的频率。我想添加域频率计数到它的相应域。 下面是查找频率并尝试将其添加到相应域的代码。 当我从数据帧打印出频率时:
问题内容: 我有一个OHLC价格数据集,该数据集已从CSV解析为Pandas数据框,并重新采样为15分钟的柱形: 我想添加各种计算的列,从简单的列开始,例如期间范围(HL),然后是布尔值以指示我将定义的价格模式的出现-例如锤形蜡烛模式,为其定义示例: 基本问题:如何将函数映射到列,特别是在我想引用多个其他列或整行或其他内容的地方? 这篇文章处理从单个源列添加两个计算列,这是很接近的,但还不完全是。