Apache spark 当我们在数据帧上运行sql更新时,Apache spark sql沿袭是如何演变的?

Apache spark 当我们在数据帧上运行sql更新时,Apache spark sql沿袭是如何演变的?,apache-spark,apache-spark-sql,parquet,Apache Spark,Apache Spark Sql,Parquet,我正在尝试开发一个后端模块,这将需要我在一个数据帧上执行几个sql更新,并以hdfs中的拼花格式作为支持。我感兴趣的是,多个sql更新如何影响DataFrame的RDD沿袭,以及在一个DataFrame上执行多个频繁的sql更新是否值得关注,因为根据我的理解,在一个DataFrame上进行单个sql更新就是一种转换。是否有任何等效于在单个沿袭步骤中对数据帧进行批量更新的方法 两个重要注意事项: Spark数据帧是不可变的,因此无法更新。您只能创建新的数据帧 转换和沿袭是RDD特有的。虽然在内部

我正在尝试开发一个后端模块,这将需要我在一个数据帧上执行几个sql更新,并以hdfs中的拼花格式作为支持。我感兴趣的是,多个sql更新如何影响DataFrame的RDD沿袭,以及在一个DataFrame上执行多个频繁的sql更新是否值得关注,因为根据我的理解,在一个DataFrame上进行单个sql更新就是一种转换。是否有任何等效于在单个沿袭步骤中对数据帧进行批量更新的方法

两个重要注意事项:

  • Spark
    数据帧是不可变的,因此无法更新。您只能创建新的
    数据帧
  • 转换和沿袭是RDD特有的。虽然在内部,
    DataFrame
    Dataset
    )上的每一组操作都被转换为一些DAG,并使用
    RDD
    执行,但
    RDD
    阶段和应用于
    Dataset
    的方法之间并没有细微的对应关系。操作符可以透明地重新排列、移除或挤压在一起。如何准确地转换查询不是合同的一部分,如果您对给定版本的详细信息感兴趣,您应该检查执行计划以及相应RDD的DAG

    通常,您可以预期单个操作可能需要介于零(如果通过投影或使用普通谓词消除了特定操作)和两个阶段(典型聚合)之间的过程。如果可能的话,通常将投影安排在一起,聚合行为会随着时间的推移而改变

    最后,某些操作可能需要多个作业来推断模式或计算统计信息

两个重要注意事项:

  • Spark
    数据帧是不可变的,因此无法更新。您只能创建新的
    数据帧
  • 转换和沿袭是RDD特有的。虽然在内部,
    DataFrame
    Dataset
    )上的每一组操作都被转换为一些DAG,并使用
    RDD
    执行,但
    RDD
    阶段和应用于
    Dataset
    的方法之间并没有细微的对应关系。操作符可以透明地重新排列、移除或挤压在一起。如何准确地转换查询不是合同的一部分,如果您对给定版本的详细信息感兴趣,您应该检查执行计划以及相应RDD的DAG

    通常,您可以预期单个操作可能需要介于零(如果通过投影或使用普通谓词消除了特定操作)和两个阶段(典型聚合)之间的过程。如果可能的话,通常将投影安排在一起,聚合行为会随着时间的推移而改变

    最后,某些操作可能需要多个作业来推断模式或计算统计信息


谢谢@zero323,但是,我关心的不是了解图形沿袭演变本身,而是一个数据帧上的多个更新SQL如何影响其性能,因为沿袭的数量与更新本身的数量一样多。嗯,因为Spark SQL中没有
UPDATE
语句,所以答案是未定义的:)除非我们考虑不同的概念。感谢@zero323,但是,我关心的不是了解图形沿袭演变本身,而是一个数据帧上的多个更新SQL如何影响其性能,它根本不影响性能,因为会有和更新本身一样多的沿袭。好吧,因为Spark SQL中没有
UPDATE
语句,所以答案是未定义的:)除非我们考虑不同的概念。