spark是否会创建或替换临时视图以向Hive Metastore添加内存?

时间:2019-04-18 14:22:08

标签: apache-spark hive pyspark apache-spark-sql

我正在分析我们的spark应用程序的内存使用情况。我们使用Hive和PySpark

在我们的应用程序中,我们有许多SparkSQL查询,例如以下查询。运行查询时,我们的hivemeta存储服务器承受着很大的压力,并且内存不足。

尽管找不到其他claim_temp语句,但磁盘缓存的cache()的存储将爆炸。只需选择数据,然后在选择结果中包含一些列,然后插入结果即可。 (Claim_temp大约为300 GB,并将增长到1000GB)

 SQL4 = """
                create temp view EX as
                select a.* from {0} a
                inner join {1} b
                on a.specialty = b.code
                where classification = 'ABCD'
                """.format(self.tables['Claims'],self.tables['taxonomy'])
  self.spark.sql(SQL4)

self.spark.sql("""insert into {0}.results_flagged
                select * from EX """.format()

create temp视图语句是否将数据添加到Hive Metastore?

创建临时视图是在Hive中将被视为临时表的Hive SQL,还是只是不添加任何内存的createOrReplaceTempView的替换?

1 个答案:

答案 0 :(得分:0)

临时视图将不会持久保存到元存储中……它是与spark会话应用程序相关联的对象,并在应用程序结束时被杀死...详细信息=> https://docs.databricks.com/spark/latest/spark-sql/language-manual/create-view.html