scala - 使用 scala / from_unixtime 在 Apache Spark 中获取 ISO 年周,在 Spark 和 Hive 中表现不同
问题描述
我正在尝试使用 scala 从字符串格式的日期在 Spark 中获取 ISO 年周。
以下 SQL 查询在 hive 中返回预期结果。
即,如果日期是 2016 年 1 月 1 日,则根据 ISO 标准,它是 2015 年的第 53 周,因此结果为 201553。
hive> select from_unixtime(unix_timestamp('20160101', 'yyyyMMdd'), 'Yww');
OK
201553
Time taken: 0.444 seconds, Fetched: 1 row(s)
如果我尝试通过 Spark sql 在 Spark 中运行相同的程序,它会给我一个不同的结果。
scala> spark.sql("""select from_unixtime(unix_timestamp('20160101', 'yyyyMMdd'), 'Yww')""").show
+------------------------------------------------------+
|from_unixtime(unix_timestamp(20160101, yyyyMMdd), Yww)|
+------------------------------------------------------+
| 201601|
+------------------------------------------------------+
我需要从 Spark 程序中得到的结果201553。
我正在使用 Spark 2.3 版
有人可以解释发生了什么吗?
请让我知道是否有任何方法可以在 Spark 中获得 ISO 年周。
解决方案
推荐阅读
- excel - VBA:无缘无故地出现运行时错误“13”
- vue.js - vuejs 编辑数据的条件来自
- python - 将 Kivy 按钮链接到 Builder 上的功能
- python - 在python 3中比较2个不同csv文件的不同行并创建新的csv
- angular - Angular,在导航离开时检测未保存的更改并确认离开或留下
- node.js - 如何从 jwt 策略中获取有效载荷?
- twilio - 如何使用变量作为 Twilio 支付连接器(Stripe)中的费用描述
- javascript - document.activeElement 条件不起作用(id 或 ref 在 div 元素内)
- google-cloud-platform - 如何连接到 mqtt.googleapis.com
- excel - VBA 列表框显示带有货币格式的错误符号