问题描述
我是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查询本身中执行此操作。
解决方法
使用lpad
函数。
spark.sql("SELECT lpad('1',4,'0')").show
+-------------+
|lpad(1,0)|
+-------------+
| 0001|
+-------------+
您可以将'1'
更改为id
。