【发布时间】:2019-09-05 15:50:57
【问题描述】:
saveastable和insertInto的区别参考here
以下两种方法有什么区别:
df.saveAsTable("mytable");
和
df.createOrReplaceTempView("my_temp_table");
spark.sql("drop table if exists " + my_temp_table);
spark.sql("create table mytable as select * from
my_temp_table");
在哪种情况下表存储在内存中,在哪种情况下物理存储在磁盘上?
另外,根据我的理解,createOrReplaceTempView 仅注册数据帧(已经在内存中)以通过 Hive 查询访问,而不实际持久化,对吗?
我必须加入数百个表并遇到 OutOfMemory 问题。 就效率而言,最好的方法是什么?
df.persist()和 df.join(..).join(..).join(..)....#hundred 连接createOrReplaceTempView然后加入spark.sql(),SaveAsTable(?不确定下一步)使用
Create Table写入磁盘,然后使用spark.sql()加入?
【问题讨论】:
标签: scala apache-spark hive pyspark apache-spark-sql