如何在Spark SQL中格式化整数



我是Spark的新手。任何帮助都将不胜感激。Spark sql中sql的FORMAT()有什么替代方案吗。我的核心逻辑是用SQL编写的,并使用spark.sql("query")运行。我需要将id转换为4位数字。

例如,如果是1,则应将其转换为0001,如果是12,则应转换为0012。我知道在SQL中,我们可以像id一样使用FORMAT("%04d", id)。但这让我在Spark SQL中出错,说FORMAT is not a function registered。在Spark的文档中找到了format_numberformat_string,但对我的情况没有帮助。

注意:我不想在我的java代码中这样做,但希望在SQL查询本身中这样做。

使用lpad函数。

spark.sql("SELECT lpad('1', 4, '0')").show
+-------------+
|lpad(1, 4, 0)|
+-------------+
|         0001|
+-------------+

您可以将'1'更改为id

最新更新