首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spark persist视图

Spark persist视图
EN

Stack Overflow用户
提问于 2017-05-18 19:18:38
回答 1查看 6K关注 0票数 5

我正在尝试持久化一个临时视图,目的是通过sql再次查询它:

代码语言:javascript
复制
val df = spark.sqlContext.read.option("header", true).csv("xxx.csv")
df.createOrReplaceTempView("xxx")

持久化/缓存:

代码语言:javascript
复制
df.cache()                          // or
spark.sqlContext.cacheTable("xxx")  // or
df.persist(MEMORY_AND_DISK)         // or
spark.sql("CACHE TABLE xxx")

然后我移动底层的xxx.csv,并且:

代码语言:javascript
复制
spark.sql("select * from xxx")

在此基础上,我发现只有CACHE TABLE xxx存储了一个副本。我做错了什么,怎么能坚持下去。DISK_ONLY一个可查询的视图/表?

EN

回答 1

Stack Overflow用户

发布于 2017-05-18 22:39:07

首先缓存它,作为df.cache,然后注册为df.createOrReplaceTempView("dfTEMP"),所以现在每次你要查询dfTEMP,比如val df1 = spark.sql("select * from dfTEMP),你都会从内存中读取它( df1上的第一个操作实际上会缓存它),现在不要担心持久性,就像df不适合内存一样,我会把剩下的部分溢出到磁盘上。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44046317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档