apache-spark - 尝试将字符串转换为 pyspark 数据帧中的 unix_timestamp 数据类型时出现 SparkUpgrade 异常
问题描述
我正在使用 spark3.1.1 并尝试使用以下代码将字符串数据类型转换为 unix_timestamp 数据类型。
pattern = 'yyyy/MM/dd hh:mm:ss aa'
file_new = file1.withColumn('Incident_DateTime', unix_timestamp(file1['Incident_DateTime'], pattern).cast('timestamp'))
file_new.select('Incident_DateTime').show(5, False)
所有操作都出错 -> 选择/显示/显示。PFB 快照和帮助
org.apache.spark.SparkUpgradeException:由于 Spark 3.0 的升级,您可能会得到不同的结果:无法识别 DateTimeFormatter 中的 'yyyy/MM/dd hh:mm:ss aa' 模式。1)您可以将 spark.sql.legacy.timeParserPolicy 设置为 LEGACY 以恢复 Spark 3.0 之前的行为。2)您可以使用https://spark.apache.org/docs/latest/sql-ref-datetime-pattern.html中的指南形成有效的日期时间模式
解决方案
从您问题中的链接:
"am-pm: 这将输出 am-pm-of-day。模式字母计数必须为 1。",
所以模式应该是一个'a':
'yyyy/MM/dd hh:mm:ss a'
推荐阅读
- kotlin - 如何在 kotlin 的课堂内使用 recycleview 调用 volley
- node.js - 当我的条件为真时,Mongoose 验证器在更新时抛出错误
- php - 将订单货币添加到订单备注 woocommerce
- mongodb - MongoDB - 检查数组中的属性出现
- authentication - 我的 Auth0 API 应该拥有哪些权限来处理登录和注册?
- javascript - 如何使用 NodeJS、Express 和 Mongoose 使 get 方法在按钮单击时读取带有参数的 url
- javascript - 如何在不使用“innerHTML”的情况下更改大部分 HTML
- android - RecyclerView 不想在使用 MotionLayout 时显示项目
- javascript - 我如何从 Nodje.js / Javascript 中的回调中获取值,以访问对查询的响应的值,使用 mysql
- rabbitmq - 用于 Windows 每周日志轮换的 RabbitMQ 3.8.2 不适用于每晚重新启动