spark java union/concat多Dataframe/sql in循环

k97glaaz  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(841)

我有一个要求,我想联合/合并多个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;

任何帮助都将不胜感激。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题