Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 将带时区的字符串转换为时间戳spark 3.0_Apache Spark_Pyspark_Apache Spark Sql_Timestamp_Timestamp With Timezone - Fatal编程技术网

Apache spark 将带时区的字符串转换为时间戳spark 3.0

Apache spark 将带时区的字符串转换为时间戳spark 3.0,apache-spark,pyspark,apache-spark-sql,timestamp,timestamp-with-timezone,Apache Spark,Pyspark,Apache Spark Sql,Timestamp,Timestamp With Timezone,我使用DataRicks接收csv,并且有一个列需要从字符串转换为时间戳。数据以字符串形式输入,格式如下:31-MAR-27 10.59.00.000000 PM GMT 我使用的代码是python,集群运行的是spark 3.0.1。我以前使用过下面的代码,但没有使用AM/PM或时区,并且我无法得到一种不对每个值都返回null的格式 df.withColumn('columnName', to_timestamp(col('columnName'),'dd-MMM-yy HH.mm.ss.SS

我使用DataRicks接收csv,并且有一个列需要从字符串转换为时间戳。数据以字符串形式输入,格式如下:31-MAR-27 10.59.00.000000 PM GMT

我使用的代码是python,集群运行的是spark 3.0.1。我以前使用过下面的代码,但没有使用AM/PM或时区,并且我无法得到一种不对每个值都返回null的格式

df.withColumn('columnName', to_timestamp(col('columnName'),'dd-MMM-yy HH.mm.ss.SSSSSS a zzz').cast(TimestampType()))

我使用此文档来帮助您

因为您的时间戳中有am/pm,所以您应该使用小写的
h
表示am pm(1-12),而不是
h
,后者表示一天中的
小时(0-23)

请注意,不需要强制转换为时间戳类型,因为
to_timestamp
已返回时间戳类型列

df2 = df.withColumn(
    'columnName', 
    to_timestamp(col('columnName'), 'dd-MMM-yy hh.mm.ss.SSSSSS a zzz')
)