Apache spark 在Spark数据集上调用createOrReplaceTempView时是否会影响性能?

Apache spark 在Spark数据集上调用createOrReplaceTempView时是否会影响性能?,apache-spark,dataset,Apache Spark,Dataset,在我的代码中,我们使用了大量createOrReplaceTempView,以便可以在生成的视图上调用SQL。这是在转换的多个阶段完成的。它还帮助我们将代码保存在每个执行特定操作的模块中。下面的示例代码将我的问题置于上下文中,如下所示。因此,我的问题是: 如果创建临时视图,性能损失是什么 从数据集 当我从每个转换中创建多个时,会执行此操作 增加内存大小 这些视图的生命周期是什么?是否有任何函数调用 移除它们 没有 从手册上 以编程方式运行SQL查询 SparkSession上的sql函数使

在我的代码中,我们使用了大量createOrReplaceTempView,以便可以在生成的视图上调用SQL。这是在转换的多个阶段完成的。它还帮助我们将代码保存在每个执行特定操作的模块中。下面的示例代码将我的问题置于上下文中,如下所示。因此,我的问题是:

  • 如果创建临时视图,性能损失是什么 从数据集

  • 当我从每个转换中创建多个时,会执行此操作 增加内存大小

  • 这些视图的生命周期是什么?是否有任何函数调用 移除它们

  • 没有

    从手册上

    以编程方式运行SQL查询

    SparkSession上的sql函数使应用程序能够以编程方式运行sql查询,并将结果作为数据帧返回

    为此,需要将数据帧注册为SQL临时视图。这是一个“惰性”人工制品,必须已经存在数据帧/数据集。只需注册即可允许SQL接口

    val dfOne = spark.read.option("header",true).csv("/apps/cortex/landing/auth/cof_auth.csv")
    dfOne.createOrReplaceTempView("dfOne")
    val dfTwo = spark.sql("select * from dfOne where column_one=1234567890")
    dfTwo.createOrReplaceTempView("dfTwo")
    val dfThree = spark.sql("select column_two, count(*) as count_two from dfTwo")
    dfTree.createOrReplaceTempView("dfThree")