5.2.3 其它方法
缓存:
.cache()
:使用默认的storage level
缓存DataFrame
(缓存级别为:MEMORY_AND_DISK
).persist(storageLevel=StorageLevel(True, True, False, False, 1))
:缓存DataFrame
参数:
storageLevel
:缓存级别。默认为MEMORY_AND_DISK
.unpersist(blocking=False)
:标记该DataFrame
为未缓存的,并且从内存和磁盘冲移除它的缓存块。
.isLocal()
:如果collect()
和take()
方法能本地运行(不需要任何executor
节点),则返回True
。否则返回False
.printSchema()
:打印DataFrame
的schema
.createTempView(name)
:创建一个临时视图,name
为视图名字。临时视图是
session
级别的,会随着session
的消失而消失。如果指定的临时视图已存在,则抛出
TempTableAlreadyExistsException
异常。参数:
name
:视图名字
示例:
df.createTempView("people")
df2 = spark_session.sql("select * from people")
.createOrReplaceTempView(name)
:创建一个临时视图,name
为视图名字。如果该视图已存在,则替换它。参数:
name
:视图名字
.createGlobalTempView(name)
:创建一个全局临时视图,name
为视图名字spark sql
中的临时视图是session
级别的,会随着session
的消失而消失。如果希望一个临时视图跨session
而存在,则可以建立一个全局临时视图。如果指定的全局临时视图已存在,则抛出
TempTableAlreadyExistsException
异常。全局临时视图存在于系统数据库
global_temp
中,必须加上库名取引用它参数:
name
:视图名字
示例:
df.createGlobalTempView("people")
spark_session.sql("SELECT * FROM global_temp.people").show()
.createOrReplaceGlobalTempView(name)
:创建一个全局临时视图,name
为视图名字。如果该视图已存在,则替换它。参数:
name
:视图名字
.registerTempTable(name)
:创建一个临时表,name
为表的名字。在
spark 2.0
中被废弃,推荐使用createOrReplaceTempView
.explain(extended=False)
:打印logical plan
和physical plan
,用于调试模式参数:
extended
:如果为False
,则仅仅打印physical plan