gpt4 book ai didi

scala - 从scala中同一表的列循环数据框

转载 作者:行者123 更新时间:2023-12-02 20:24:21 24 4
gpt4 key购买 nike

我有DataFrame,它将包含带有数据的表名。我需要使用表列名称循环DataFrame。首先有没有更好的方法来进行收集?

val tablename:Array[String] = df1.select("msgname").distinct().rdd.map(row=>row.getString(0).trim).collect

tablename.foreach{table =>
//print(table)
//val columns:Array[String] = df1.filter(s"msgname = '$table'").select("columns").distinct().rdd.map(row=>row.toString()).collect
df1.filter(s"msgname = '$table'").select("record_data").write.saveAsTable(s"$table")
//.toDF(columns:_*).show()
//.toDF(columns:_*).show()
}

最佳答案

2个提高性能的想法:缓存df1和/或触发并行 Spark 作业,例如使用并行集合,如下所示:

df1.cache()    
val tablename:Array[String] = df1.select(trim("msgname")).distinct().as[String].collect

tablename
.par // enable parallel execution
.foreach{table =>
df1.filter(s"msgname ='$table'").select("record_data").write.saveAsTable(s"$table")
}

关于scala - 从scala中同一表的列循环数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58091504/

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