如何在 Spark SQL 中格式化整数?
Posted
技术标签:
【中文标题】如何在 Spark SQL 中格式化整数?【英文标题】:How to format integer in Spark SQL? 【发布时间】:2020-08-19 05:07:45 【问题描述】:我是 Spark 的新手。任何帮助将不胜感激。 Spark SQL 中的 sql 的 FORMAT()
是否有任何替代方案。我的核心逻辑是用 SQL 编写的,并使用spark.sql("query")
运行。我需要将 id 转换为 4 位数字。
比如如果是1,就应该转换成0001,如果是12,那就是0012。我知道在SQL中,我们可以把FORMAT("%04d", id)
转换成id
。但这给了我在 Spark SQL 中说FORMAT is not a function registered
的错误。在 Spark 的文档中找到 format_number
和 format_string
,但对我的情况没有帮助。
注意:我不想在我的 java 代码中这样做,但想在 SQL 查询本身中这样做。
【问题讨论】:
spark.apache.org/docs/2.3.0/api/sql/#format_string 【参考方案1】:使用lpad
函数。
spark.sql("SELECT lpad('1', 4, '0')").show
+-------------+
|lpad(1, 4, 0)|
+-------------+
| 0001|
+-------------+
您可以将'1'
更改为id
。
【讨论】:
以上是关于如何在 Spark SQL 中格式化整数?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 DDMMMYYYY HH:mm:ss:ssssss 格式的时间戳更改为 spark sql 中的 yyyy-MM-dd 格式 [重复]