Pyspark самый надежный способ проверить тип столбца - PullRequest
0 голосов
/ 21 сентября 2018

Если я читаю данные из CSV, по умолчанию все столбцы будут иметь тип «String».Обычно я проверяю данные, используя следующие функции, которые дают обзор данных и их типов

  • df.dtypes
  • df.show ()
  • df.printSchema ()
  • df.distinct (). count ()
  • df.describe (). show ()

Но, если есть столбец, которыйЯ считаю, что это определенный тип, например, Double, я не могу быть уверен, что все значения двойные, если у меня нет бизнес-знаний, и потому что

1 - я не могу видеть все значения (миллионы уникальных значений)2- Если я явно приведу его к типу double, spark тихо преобразует тип, не выбрасывая исключений, и значения, не являющиеся двойными, преобразуются в «ноль» - например,

from pyspark.sql.types import DoubleType.

changedTypedf = df_original.withColumn('label', df_control_trip['id'].cast(DoubleType()))

Что может быть лучшимспособ подтвердить тип столбца тогда?

1 Ответ

0 голосов
/ 21 сентября 2018

В Scala Dataframe есть поле «схема», угадайте, в Python то же самое:

df.schema.fields.find( _.name=="label").get.dataType
...