Selecionando apenas nomes de colunas numéricas / de cadeia de caracteres de um Spark DF no pyspark

Eu tenho um SparkDataFrame no pyspark (2.1.0) e estou olhando para obter apenas os nomes de colunas numéricas ou colunas de string.

Por exemplo, este é o esquema do meu DF:

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

Isto é o que eu preciso:

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

Como posso fazer isso? Obrigado!