У меня есть столбец с отметкой времени, в котором есть записи типа «2016-11-22 14:35:51» в SPARK SQL. Может ли кто-нибудь помочь мне получить номер недели месяца для данного формата метки времени?
Я пытался,
ВЫБРАТЬ метку времени, DATE_FORMAT (метка времени, 'u') КАК НЕДЕЛЮ ИЗ table_1;
Но он дает неправильный результат, так как,
timestamp | WEEK
2016-11-22 | 2
Благодарю, если кто-то может мне помочь.
Спасибо.
1 ответ
Вы используете неправильный литерал, вам нужно использовать W
вместо u
.
Буква u
обозначает номер дня недели .
scala> sqlContext.sql("select current_timestamp() as time, date_format(current_timestamp,'W') as week").show
// +--------------------+----+
// | time|week|
// +--------------------+----+
// |2017-01-09 13:46:...| 2|
// +--------------------+----+
scala> sqlContext.sql("select to_date('2017-01-01') as time, date_format(to_date('2017-01-01'),'W') as week").show
// +----------+----+
// | time|week|
// +----------+----+
// |2017-01-01| 1|
// +----------+----+
Если у вас есть дополнительные сомнения, вы всегда можете обратиться к официальная документация SimpleDateFormat на Java.
Похожие вопросы
Новые вопросы
apache-spark
Apache Spark - это механизм распределенной обработки данных с открытым исходным кодом, написанный на Scala, предоставляющий пользователям унифицированный API и распределенные наборы данных как для пакетной, так и для потоковой обработки. Варианты использования Apache Spark часто связаны с машинным / глубоким обучением и обработкой графиков.