Apache spark 蜂巢和Pypark效率-多个工作还是一个工作?

Apache spark 蜂巢和Pypark效率-多个工作还是一个工作?,apache-spark,pyspark,pyspark-sql,Apache Spark,Pyspark,Pyspark Sql,我有一个关于Spark内部运作的问题 如果我从配置单元表定义数据帧,例如df1=spark_session.table('db.table');那张桌子只念一次吗 我的意思是,如果我从df1创建了4或5个新的数据帧,并将它们全部输出到单独的文件中,这比将它们全部作为不同的spark文件运行更有效吗 这比下图更有效吗?这是因为我们只读取了一次数据,导致配置单元上的负载减少了,还是因为现在它是这样工作的 除此之外: 如果我从一个配置单元表定义一个数据帧,例如df1=spark\u session.

我有一个关于Spark内部运作的问题


如果我从配置单元表定义数据帧,例如df1=spark_session.table('db.table');那张桌子只念一次吗

我的意思是,如果我从df1创建了4或5个新的数据帧,并将它们全部输出到单独的文件中,这比将它们全部作为不同的spark文件运行更有效吗

这比下图更有效吗?这是因为我们只读取了一次数据,导致配置单元上的负载减少了,还是因为现在它是这样工作的

除此之外:

如果我从一个配置单元表定义一个数据帧,例如df1=spark\u session.table('db.table');那张桌子只念一次吗

  • 您需要将
    df1=spark\u session.table('db.table')缓存(),然后spark将读取该表一次,并在执行操作时缓存数据

  • 如果您将df1输出到
    4或5
    不同的文件,也只需从配置单元表读取一次数据,因为我们已经缓存了数据


这比下图更有效吗?这是因为我们只读取了一次数据,导致配置单元上的负载减少了,还是因为现在它是这样工作的

  • 是的,在您的第一个图表中我们在
    蜂箱上保持较少的负载
    ,因为我们只读取了一次数据

  • 在第二个图表中,如果我们为每个文件编写单独的spark作业,这意味着我们正在读取每个作业中的配置单元表