class_docstr: A handle to a query that is executing continuously in the background as new data arrives.
  All these methods are thread-safe.
  
  .. versionadded:: 2.0.0
  
  .. versionchanged:: 3.5.0
      Supports Spark Connect.
  
  Notes
  -----
  This API is evolving.
docstr: Returns the most recent :class:`StreamingQueryProgress` update of this streaming query or
  None if there were no progress updates
  
  .. versionadded:: 2.1.0
  
  .. versionchanged:: 3.5.0
      Supports Spark Connect.
  
  Returns
  -------
  dict, optional
      The most recent :class:`StreamingQueryProgress` update of this streaming query or
      None if there were no progress updates.
  
  Examples
  --------
  >>> sdf = spark.readStream.format("rate").load()
  >>> sq = sdf.writeStream.format('memory').queryName('this_query').start()
  
  Get the most recent query progress updates for this query
  
  >>> sq.lastProgress
  >>> sq.stop()
docstr_tok: ["Returns","the","most","recent",":","class",":","`","StreamingQueryProgress","`","update","of","this","streaming","query","or","None","if","there","were","no","progress","updates","..","versionadded",":",":","2.1.0","..","versionchanged",":",":","3.5.0","Supports","Spark","Connect",".","Returns","--","--","--","-","dict",",","optional","The","most","recent",":","class",":","`","StreamingQueryProgress","`","update","of","this","streaming","query","or","None","if","there","were","no","progress","updates",".","Examples","--","--","--","--",">",">",">","sdf","=","spark.readStream.format","(","``","rate","''",")",".load","(",")",">",">",">","sq","=","sdf.writeStream.format","(","'memory","'",")",".queryName","(","'this_query","'",")",".start","(",")","Get","the","most","recent","query","progress","updates","for","this","query",">",">",">","sq.lastProgress",">",">",">","sq.stop","(",")"]
code: def lastProgress(self) -> Optional[Dict[str, Any]]:
      """
      Returns the most recent :class:`StreamingQueryProgress` update of this streaming query or
      None if there were no progress updates
  
      .. versionadded:: 2.1.0
  
      .. versionchanged:: 3.5.0
          Supports Spark Connect.
  
      Returns
      -------
      dict, optional
          The most recent :class:`StreamingQueryProgress` update of this streaming query or
          None if there were no progress updates.
  
      Examples
      --------
      >>> sdf = spark.readStream.format("rate").load()
      >>> sq = sdf.writeStream.format('memory').queryName('this_query').start()
  
      Get the most recent query progress updates for this query
  
      >>> sq.lastProgress
      >>> sq.stop()
      """
      lastProgress = self._jsq.lastProgress()
      if lastProgress:
          return json.loads(lastProgress.json())
      else:
          return None
  
imports: import json
  from typing import Any, Dict, List, Optional
  from py4j.java_gateway import JavaObject, java_import
  from pyspark.errors import StreamingQueryException, PySparkValueError
  from pyspark.errors.exceptions.captured import StreamingQueryException
  from pyspark.sql.streaming.listener import StreamingQueryListener
label_desc: Use image node_id 9 for calling the StreamingQuery obj's underlying member method code with example usage: obj.lastProgress() and returns: json, None