Bagikan melalui


try_make_timestamp

Cobalah untuk membuat tanda waktu dari tahun, bulan, hari, jam, menit, detik, dan bidang zona waktu (opsional). Atau, coba buat tanda waktu dari bidang zona waktu tanggal, waktu, dan (opsional). Jenis data hasil konsisten dengan nilai konfigurasi spark.sql.timestampType. Fungsi mengembalikan NULL pada input yang tidak valid.

Syntax

import pyspark.sql.functions as sf

# From individual components
sf.try_make_timestamp(years=<years>, months=<months>, days=<days>, hours=<hours>, mins=<mins>, secs=<secs>)

# With timezone
sf.try_make_timestamp(years=<years>, months=<months>, days=<days>, hours=<hours>, mins=<mins>, secs=<secs>, timezone=<timezone>)

# From date and time
sf.try_make_timestamp(date=<date>, time=<time>)

# From date and time with timezone
sf.try_make_timestamp(date=<date>, time=<time>, timezone=<timezone>)

Parameter-parameternya

Pengaturan Tipe Description
years pyspark.sql.Column atau str Tahun yang akan diwakili, dari 1 hingga 9999. Diperlukan saat membuat tanda waktu dari komponen individual. Harus digunakan dengan bulan, hari, jam, menit, dan detik.
months pyspark.sql.Column atau str Bulan dalam setahun untuk diwakili, dari 1 (Januari) hingga 12 (Desember). Diperlukan saat membuat tanda waktu dari komponen individual. Harus digunakan dengan tahun, hari, jam, menit, dan detik.
days pyspark.sql.Column atau str Hari dalam sebulan untuk diwakili, dari 1 hingga 31. Diperlukan saat membuat tanda waktu dari komponen individual. Harus digunakan dengan tahun, bulan, jam, menit, dan detik.
hours pyspark.sql.Column atau str Jam dalam sehari untuk diwakili, dari 0 hingga 23. Diperlukan saat membuat tanda waktu dari komponen individual. Harus digunakan dengan tahun, bulan, hari, menit, dan detik.
mins pyspark.sql.Column atau str Menit dari jam untuk diwakili, dari 0 hingga 59. Diperlukan saat membuat tanda waktu dari komponen individual. Harus digunakan dengan tahun, bulan, hari, jam, dan detik.
secs pyspark.sql.Column atau str Detik-of-menit dan mikro-pecahan untuk mewakili, dari 0 hingga 60. Nilainya dapat berupa bilangan bulat seperti 13, atau pecahan seperti 13,123. Jika argumen detik sama dengan 60, bidang detik diatur ke 0 dan 1 menit ditambahkan ke tanda waktu akhir. Diperlukan saat membuat tanda waktu dari komponen individual. Harus digunakan dengan tahun, bulan, hari, jam, dan menit.
timezone pyspark.sql.Column atau str Optional. Pengidentifikasi zona waktu. Misalnya, CET, UTC, dan dll.
date pyspark.sql.Column atau str Tanggal yang akan diwakili, dalam format DATE yang valid. Diperlukan saat membuat tanda waktu dari komponen tanggal dan waktu. Harus digunakan hanya dengan parameter waktu.
time pyspark.sql.Column atau str Waktu untuk mewakili, dalam format TIME yang valid. Diperlukan saat membuat tanda waktu dari komponen tanggal dan waktu. Harus digunakan hanya dengan parameter tanggal.

Pengembalian Barang

pyspark.sql.Column: Kolom baru yang berisi tanda waktu atau NULL jika terjadi kesalahan.

Examples

Contoh 1: Buat tanda waktu dari tahun, bulan, hari, jam, menit, detik, dan zona waktu.

import pyspark.sql.functions as sf
df = spark.createDataFrame([[2014, 12, 28, 6, 30, 45.887, 'CET']],
    ['year', 'month', 'day', 'hour', 'min', 'sec', 'tz'])
df.select(
    sf.try_make_timestamp(df.year, df.month, df.day, 'hour', df.min, df.sec, 'tz')
).show(truncate=False)
+----------------------------------------------------+
|try_make_timestamp(year, month, day, hour, min, sec)|
+----------------------------------------------------+
|2014-12-27 21:30:45.887                             |
+----------------------------------------------------+

Contoh 2: Buat tanda waktu dari tahun, bulan, hari, jam, menit, dan detik (tanpa zona waktu).

import pyspark.sql.functions as sf
df = spark.createDataFrame([[2014, 12, 28, 6, 30, 45.887, 'CET']],
    ['year', 'month', 'day', 'hour', 'min', 'sec', 'tz'])
df.select(
    sf.try_make_timestamp('year', 'month', df.day, df.hour, df.min, df.sec)
).show(truncate=False)
+------------------------------------------------------+
|try_make_timestamp(year, month, day, hour, min, sec) |
+------------------------------------------------------+
|2014-12-28 06:30:45.887                               |
+------------------------------------------------------+

Contoh 3: Buat tanda waktu dari tanggal dan waktu dengan zona waktu.

import pyspark.sql.functions as sf
from datetime import date, time
df = spark.range(1).select(
    sf.lit(date(2014, 12, 28)).alias("date"),
    sf.lit(time(6, 30, 45, 887000)).alias("time"),
    sf.lit("CET").alias("tz")
)
df.select(sf.try_make_timestamp(date=df.date, time=df.time, timezone=df.tz)).show(truncate=False)
+----------------------------------------+
|try_make_timestamp(date, time, timezone)|
+----------------------------------------+
|2014-12-27 21:30:45.887                 |
+----------------------------------------+

Contoh 4: Buat tanda waktu dari tanggal dan waktu (tanpa zona waktu).

import pyspark.sql.functions as sf
from datetime import date, time
df = spark.range(1).select(
    sf.lit(date(2014, 12, 28)).alias("date"),
    sf.lit(time(6, 30, 45, 887000)).alias("time")
)
df.select(sf.try_make_timestamp(date=df.date, time=df.time)).show(truncate=False)
+------------------------------+
|try_make_timestamp(date, time)|
+------------------------------+
|2014-12-28 06:30:45.887       |
+------------------------------+

Contoh 5: Mengembalikan NULL pada input yang tidak valid.

import pyspark.sql.functions as sf
df = spark.createDataFrame([[2014, 13, 28, 6, 30, 45.887]],
    ['year', 'month', 'day', 'hour', 'min', 'sec'])
df.select(
    sf.try_make_timestamp('year', 'month', df.day, df.hour, df.min, df.sec)
).show(truncate=False)
+------------------------------------------------------+
|try_make_timestamp(year, month, day, hour, min, sec) |
+------------------------------------------------------+
|NULL                                                  |
+------------------------------------------------------+