Определение DateType (), дающее значение Null в PySpark? - PullRequest
0 голосов
/ 01 сентября 2018

У меня есть даты с прямым порядком байтов: ГГГГММДД в ​​формате CSV.

Когда я использую простые строковые типы, данные загружаются правильно, но когда я использовал объект DateType () для определения столбца, я получаю нулевые значения для всего. Могу ли я где-нибудь определить формат даты или Spark определит это автоматически?

schema_comments= StructType([
    StructField("id", StringType(), True),
    StructField("date", DateType(), True),
])

1 Ответ

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

DateType ожидает стандартный формат метки времени в spark, поэтому, если вы предоставляете его в схеме, он должен иметь формат 1997-02-28 10:30:00, если это не так, прочитайте его, используя pandas или pyspark в строковом формате, а затем Вы можете преобразовать его в объект DateType (), используя python и pyspark. Ниже приведен пример кода для преобразования формата ГГГГММДД в ​​DateType в pyspark:

from pyspark.sql.functions import unix_timestamp

df2 = df.select('date_str', from_unixtime(unix_timestamp('date_str', 'yyyyMMdd')).alias('date'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...