pyspark:将日期从这种格式dd-MMM-yyyy hh:mm:ss转换为yyyy-mm-dd

时间:2018-06-21 04:25:12

标签: date pyspark

有人可以帮我这个忙吗

我正在尝试将日期像10-Jun-2018 09:59:51转换为2018-06-10,但没有成功 基本上我是从外部表中查询日期字段,例如:

select format_datetime(my_date, 'y-M-d') as dt from blahblah

以上内容适用于雅典娜,但不适用于pyspark。

我在pyspark中使用了以下代码,但是得到了一个空字符串

select from_unixtime(UNIX_TIMESTAMP(my_date, 'yyyy-MM-dd')) as dt from blahblah

注意:my_date是外部表中的字符串数据类型,我需要提取日期部分才能在此字段上创建分区。

在此方面的任何帮助,我都很感谢!

1 个答案:

答案 0 :(得分:0)

您也可以在spark-sqlsqlContext.sql("select from_unixtime(unix_timestamp('10-Jun-2018 09:59:51', 'dd-MMM-yyyy hh:mm:ss'), 'yyyy-MM-dd')").show() 中尝试

Pyspark

select from_unixtime(unix_timestamp('10-Jun-2018 09:59:51', 'dd-MMM-yyyy hh:mm:ss'), 'yyyy-MM-dd');

HIVE

public function render($request, Exception $exception)
{
    if ($this->isHttpException($exception)) {
        $statusCode = $exception->getStatusCode();
        return response()->make(view("NEW_PATH.{$statusCode}",['exception'=>$exception]), $statusCode) ;
    }
    return parent::render($request, $exception);
}

请参阅this以获取配置单元内置的日期时间UDF。

this表示时间戳格式的字符串。