我有一组数据帧。我们的想法是以编程方式创建一个新的数据框数组,其数据框名称附加一个字符串。简而言之,我有一个名为
的数组var dataFrameArray = Array(df1, df2, df3, df4, df5, df6, df7, df8, df9, df10)
我需要一个名为
的新dataFramenewDataFrameArray = Array(df1new, df2new, df3new, df4new, df5new, df6new, df7new, df8new, df9new, df10new)
新数组中的每个元素都是具有新名称df(x)+“new”的数据框
这是我对我的代码的尝试,目前无效。
import org.apache.spark.sql.types._
import org.apache.spark.sql.Dataset
var dataFrameArray = Array(df1, df2, df3, df4, df5, df6, df7, df8, df9, df10)
var newDataFrameArray = new Array[Dataset](dataFrameArray.length);
var counter = 0;
for (x <- dataFrameArray) {
var y: Dataset<Row> = x.select($"timestamp".cast(DoubleType).cast(TimestampType).as("timestamps"),$"is_anomaly",$"value")
y = y.orderBy($"timestamps")
y.printSchema()
newDataFrameArray = newDataFrameArray + y
}
for (eachDf <- newDataFrameArray) {
eachDf.printSchema
}
答案 0 :(得分:1)
您无法在Scala或Java中动态更改变量名称。 应该明确声明变量名称。 此外,您的问题与Scala有关,与Spark数据集
无关答案 1 :(得分:0)
您无法更改dataframe变量的名称。您可以注册新表并在稍后的数据框中分配
,而不是创建新的Dataframey.createOrReplaceTempView()