Seleccionando solo nombres de columnas numéricas / de cadena de un Spark DF en pyspark

Tengo un SparkDataFrame en pyspark (2.1.0) y estoy buscando obtener los nombres de solo columnas numéricas o solo columnas de cadena.

Por ejemplo, este es el esquema de mi DF:

root |-- Gender: string (nullable = true) |-- SeniorCitizen: string (nullable = true) |-- MonthlyCharges: double (nullable = true) |-- TotalCharges: double (nullable = true) |-- Churn: string (nullable = true) 

Esto es lo que necesito:

 num_cols = [MonthlyCharges, TotalCharges] str_cols = [Gender, SeniorCitizen, Churn] 

¿Cómo puedo hacerlo? ¡Gracias!

dtypes es una lista de tuplas (columnNane, type) que puede usar filtro simple

  columnList = [item[0] for item in df.dtypes if item[1].startswith('string')]