5.2.3 其它方法

  1. 缓存:

    • .cache():使用默认的storage level 缓存DataFrame(缓存级别为:MEMORY_AND_DISK

    • .persist(storageLevel=StorageLevel(True, True, False, False, 1)):缓存DataFrame

      • 参数:

        • storageLevel:缓存级别。默认为MEMORY_AND_DISK
    • .unpersist(blocking=False):标记该DataFrame 为未缓存的,并且从内存和磁盘冲移除它的缓存块。
  2. .isLocal():如果collect()take() 方法能本地运行(不需要任何executor 节点),则返回True。否则返回False

  3. .printSchema():打印DataFrameschema

  4. .createTempView(name):创建一个临时视图,name 为视图名字。

    临时视图是session 级别的,会随着session 的消失而消失。

    • 如果指定的临时视图已存在,则抛出TempTableAlreadyExistsException 异常。

    • 参数:

      • name:视图名字
    • 示例:

      1. df.createTempView("people")
      2. df2 = spark_session.sql("select * from people")
  5. .createOrReplaceTempView(name):创建一个临时视图,name 为视图名字。如果该视图已存在,则替换它。

    • 参数:

      • name:视图名字
  6. .createGlobalTempView(name):创建一个全局临时视图,name 为视图名字

    spark sql 中的临时视图是session 级别的,会随着session 的消失而消失。如果希望一个临时视图跨session 而存在,则可以建立一个全局临时视图。

    • 如果指定的全局临时视图已存在,则抛出TempTableAlreadyExistsException 异常。

    • 全局临时视图存在于系统数据库global_temp 中,必须加上库名取引用它

    • 参数:

      • name:视图名字
    • 示例:

      1. df.createGlobalTempView("people")
      2. spark_session.sql("SELECT * FROM global_temp.people").show()
  7. .createOrReplaceGlobalTempView(name):创建一个全局临时视图,name 为视图名字。如果该视图已存在,则替换它。

    • 参数:

      • name:视图名字
  8. .registerTempTable(name):创建一个临时表,name 为表的名字。

    spark 2.0 中被废弃,推荐使用createOrReplaceTempView

  9. .explain(extended=False):打印logical planphysical plan,用于调试模式

    • 参数:

      • extended:如果为False,则仅仅打印physical plan