Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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 如何在PySpark中转换人类可理解的时间戳中的unix时间戳列?_Apache Spark_Pyspark_Unix Timestamp - Fatal编程技术网

Apache spark 如何在PySpark中转换人类可理解的时间戳中的unix时间戳列?

Apache spark 如何在PySpark中转换人类可理解的时间戳中的unix时间戳列?,apache-spark,pyspark,unix-timestamp,Apache Spark,Pyspark,Unix Timestamp,我有一列包含unix时间戳数据,Spark将其解释为长类型,例如: +---------------+ | my_timestamp | +---------------+ | 1584528257638 | | 1586618807677 | | 1585923477767 | | 1583314882085 | 我想把它转换成人类可读的格式,例如 +------------------------+ | my_timestamp | +--------------

我有一列包含unix时间戳数据,Spark将其解释为长类型,例如:

+---------------+
| my_timestamp  | 
+---------------+
| 1584528257638 |
| 1586618807677 |
| 1585923477767 |
| 1583314882085 |
我想把它转换成人类可读的格式,例如

+------------------------+
|      my_timestamp      | 
+------------------------+
|2020-03-18 10:44:17.638 |
|2020-04-11 16:26:47.677 |
|2020-04-03 15:17:57.767 |
|2020-03-04 09:41:22.085 |

我该怎么做呢?

因为时间戳列是以毫秒为单位的,所以只需将其转换为秒,并将其转换为
时间戳类型
,这样就可以做到:

from pyspark.sql.types import TimestampType
import pyspark.sql.functions as F

df.select( 
      (F.col("my_timestamp") / 1000).cast(TimestampType())
)

@AndréMachado我只是想和大家分享一下我用简单类型转换转换unix时间戳的方法(见答案),因为它对我很有用,我不认为它很有用。我不明白。。。我要求将时间戳转换为时间戳,您报告的潜在重复问题是关于转换为日期的问题(另外一个是Scala…),在标记为重复之前进行讨论不是更好吗?