Seleccionar 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 solo los nombres de columnas numéricas o 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!