Я пытаюсь научиться искрой, и я читаю dataframe с колонкой временной метки с помощью unix_timestamp
функции, как показано ниже:Чтение полной временной метки в dataframe
val columnName = "TIMESTAMPCOL"
val sequence = Seq(2016-01-20 12:05:06.999)
val dataframe = {
sequence.toDF(columnName)
}
val typeDataframe = dataframe.withColumn(columnName, org.apache.spark.sql.functions.unix_timestamp($"TIMESTAMPCOL"))
typeDataframe.show
Это производит выход:
+------------+
|TIMESTAMPCOL|
+------------+
| 1453320306|
+------------+
Как я могу прочитать его, чтобы я не потерял мс, т. Е. Часть .999
? Я попытался использовать unix_timestamp(col: Col, s: String)
, где s - это SimpleDateFormat, например «yyyy-MM-dd hh: mm: ss», без везения.
'date_format' использует Java SimpleDateFormat внутренне, так что вы получите полный рабочий день в милли секунд, а также. возможно дублировать [из] (http://stackoverflow.com/questions/41879125/handling-microseconds-in-spark-scala/41879869#41879869) –
Возможный дубликат [Обработка микросекунд в Spark Scala] (http: // stackoverflow. ком/вопросы/41879125/погрузо-микросекунд-в-искровым Scala) –