apache-spark - 有什么方法可以处理pyspark中的时间吗?
问题描述
我有一个包含 6 个字符的字符串,应该作为 TIME 数据类型加载到 SQL Server 中。但是 spark 没有任何时间数据类型。我尝试了几种方法,但数据类型没有在时间戳中返回。
我正在将数据作为字符串读取并将其转换为时间戳,然后最终尝试提取时间值,但它再次将值作为字符串返回。
df.select('time_col').withColumn("time_col",to_timestamp(col("time_col"),"HHmmss").cast(TimestampType())).withColumn("tim2", date_format(col("time_col"), "HHmmss")).printSchema()
root
|-- time_col: timestamp (nullable = true)
|-- tim2: string (nullable = true)
数据看起来像这样,但数据类型不同。
df.select('time_col').withColumn("time_col",to_timestamp(col("time_col"),"HHmmss").cast(TimestampType())).withColumn("tim2", date_format(col("time_col"), "HHmmss")).show(5)
+-------------------+------+
| time_col| tim2|
+-------------------+------+
|1970-01-01 14:44:51|144451|
|1970-01-01 14:48:37|144837|
|1970-01-01 14:46:10|144610|
|1970-01-01 11:46:39|114639|
|1970-01-01 17:44:33|174433|
+-------------------+------+
有什么方法可以在时间戳列或与 SQL Server 的 TIME 数据类型等效的列中获取 tim2 列?
解决方案
在我的情况下,我曾经在 spark 中转换为时间戳,然后在发送到 SQL 服务器之前将其设为字符串。它对我来说很好。
推荐阅读
- scala - 如何减少 Spark 中的 List[Key, List[Name, Value]]?
- c++ - GCC 原生矩阵运算库
- android - 如何在 Flutter 中制作透明的应用程序?
- react-native - React Navigation 5 隐藏抽屉项目
- mezzio - Zend Expressive / Laminas Mezzio - Route 至少需要参数值
- java - mp3 被tomcat(spring boot)视为视频
- response - 无法从空手道的响应标头中获取“位置”属性
- java - 如何获取上传到 Firebase 存储的 pdf 文件的可点击链接
- angular - ngIf 和 ngFor 在数组上的角循环问题
- regex - 正则表达式 - 仅第一个 Hypen