代码之家  ›  专栏  ›  技术社区  ›  Ramakrishna

将Spark数据帧保存到多个并行目标

  •  0
  • Ramakrishna  · 技术社区  · 6 年前

    我需要将我的最终数据帧写入hdfs和oracle数据库。 目前,一旦保存到hdfs完成,它就开始写入rdbms。是否有任何方法可以使用Java线程将相同的文件保存到HDFS以及RDBMS并行。

    finalDF.write().option("numPartitions", "10").jdbc(url, exatable, jdbcProp);
    finalDF.write().mode("OverWrite").insertInto(hiveDBWithTable);
    

    谢谢。

    2 回复  |  直到 6 年前
        1
  •  0
  •   Ajay Srivastava    6 年前

    在写入hdfs和rdbms之前缓存finaldf。然后确保有足够的执行器可以同时编写。如果finaldf中的分区数为p,每个执行器的核心数为c,则需要最少的ceilof(p/c)+ceilof(10/c)执行器。

        2
  •  0
  •   Ged    6 年前

    df.show和df.write是动作。动作在火花中按顺序发生。所以,答案是否定的,除非使用线程,否则标准上是不可能的。