Добавление значений констант в начале кадра данных в pyspark - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь прочитать файл CSV из местоположения HDFS, и к этому необходимо добавить 3 столбца batchid, отметку времени загрузки и индикатор удаления. Я использую свечи 2.3.2 и python 2.7.5. Примеры значений для 3 столбцов, которые будут добавлены, приведены ниже.

  • batchid- ГГГГМдд (цел.)

  • Загрузить временную метку - текущую временную метку (timestamp)

  • индикатор удаления - пусто (строка)

1 Ответ

0 голосов
/ 16 апреля 2020

Ваш вопрос немного неясен. Вы можете сделать что-то в этом вкусе. Сначала создайте свою метку времени, используя python функциональные возможности:


import time
import datetime

timestamp = datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')

Затем, предполагая, что вы используете DataFrame API, вставьте ее в свой столбец:

import pyspark.sql.functions as psf

df = (df
   .withColumn('time',
               psf.unix_timestamp(
                   psf.lit(timestamp),'yyyy-MM-dd HH:mm:ss'
                   ).cast("timestamp")
               )
   .withColumn('batchid', psf.date_format('time', 'yyyyMMdd/yyy'))
   .withColumn('delete', psf.lit(''))

Чтобы изменить порядок столбцов :

df = df.select(*["time","batchid","delete"] + [k for k in colnames if k not in ["time","batchid","delete"]])

...