我有一个要求,我想联合/合并多个Dataframe。总的来说,我们有大约14000个这样的dataframes/sql,我们在运行时生成这些Dataframe,然后在写入hive之前进行联合。我试过两种方法,但都很慢。有没有什么方法可以在下面优化或者并行运行它们。注意,我只需要spark java中的解决方案。
伪代码
第一路:
Dataset dfunion = null;
for (int i = 0; i <= 14000; i++) {
String somesql = "select columns from table where conditions(depending on each loop)"
if (i == 1)
dfunion = spark.sql(somesql);
else{
dfunion = dfunion.union(spark.sql(somesql));
}
}
dfunion.writetohive
第二种方式:
for (int i = 0; i <= 14000; i++) {
String somesql = "select columns from table where conditions(depending on each loop)"
if (i == 1)
spark.sql(somesql).write.mode(overwrite).parquet;
else {
spark.sql(somesql).write.mode(append).parquet;
}
}
Dataset dfread = spark.read.parquet().writetohive;
任何帮助都将不胜感激。
暂无答案!
目前还没有任何答案,快来回答吧!