de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
 youngchampion
youngchampion
Question

Bagaimana cara mengubah timestamp unix menjadi tanggal di Spark

Saya memiliki data frame dengan kolom unix timestamp (misal.1435655706000), dan saya ingin mengkonversikannya ke data dengan format 'yyyy-MM-DD', saya sudah mencoba nscala-time tetapi tidak berhasil.

val time_col = sqlc.sql("select ts from mr").map(_(0).toString.toDateTime)
time_col.collect().foreach(println)

dan saya mendapat kesalahan: java.lang.IllegalArgumentException: Format tidak valid: "1435655706000" adalah malformed di "6000"

31 2015-06-30T09:51:01+00:00 3
Hammad Haleem
Hammad Haleem
Pertanyaan edit 9 Maret 2016 в 4:29
Pemrograman
datetime
timestamp
scala
apache-spark
nscala-time
Pertanyaan ini memiliki :value jawaban dalam bahasa Inggris, untuk membacanya masuk ke akun Anda.
Hammad Haleem
Hammad Haleem
8 Januari 2016 в 4:09
2016-01-08T04:09:29+00:00
Lebih
Sumber
Sunting
#27977733
import org.joda.time.{DateTimeZone}
import org.joda.time.format.DateTimeFormat

Anda perlu mengimpor pustaka berikut ini.

val stri = new DateTime(timeInMillisec).toDateTime.toString("yyyy/MM/dd")

Atau menyesuaikan dengan kasus Anda:

 val time_col = sqlContext.sql("select ts from mr")
                     .map(line => new DateTime(line(0).toInt).toDateTime.toString("yyyy/MM/dd"))

Mungkin ada cara lain:

  import com.github.nscala_time.time.Imports._

  val date = (new DateTime() + ((threshold.toDouble)/1000).toInt.seconds )
             .toString("yyyy/MM/dd")

Semoga ini membantu :)

Hammad Haleem
Hammad Haleem
Jawaban edit 4 Juli 2016 в 6:00
14
0
 youngchampion
youngchampion
1 Juli 2015 в 7:57
2015-07-01T07:57:10+00:00
Lebih
Sumber
Sunting
#27977732

Saya telah memecahkan masalah ini menggunakan pustaka joda-time dengan memetakan pada DataFrame dan mengubah DateTime menjadi String:

import org.joda.time._
val time_col = sqlContext.sql("select ts from mr")
                         .map(line => new DateTime(line(0)).toString("yyyy-MM-dd"))
 eliasah
eliasah
Jawaban edit 9 November 2015 в 1:18
6
0
 Orar
Orar
18 Mei 2016 в 11:27
2016-05-18T23:27:25+00:00
Lebih
Sumber
Sunting
#27977734

Anda tidak perlu mengkonversi ke String sebelum menerapkan toDataTime dengan nscala_time

import com.github.nscala_time.time.Imports._

scala> 1435655706000L.toDateTime
res4: org.joda.time.DateTime = 2015-06-30T09:15:06.000Z

`

6
0
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Asilbek Qadamboyev
Terdaftar 7 jam yang lalu
2
Akshit Mehta
Terdaftar 2 hari yang lalu
3
me you
Terdaftar 6 hari yang lalu
4
Никита иванов
Terdaftar 1 minggu yang lalu
5
Alex1976G_06
Terdaftar 1 minggu yang lalu
ID
JA
KO
RU
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi