我有一个看起来像这样的函数:
static Column getFormattedData(Column name, Column surname) {
return concat(
lit("NAME_")
lpad(name, greatest(length(name), lit(8)), "0"),
lpad(surname, greatest(length(surname), lit(8)), "0"));
}
字符串
在lpad()
步骤有问题,其中greatest()
返回一个Column,而lpad()
期望第二个参数是Integer
。
有没有办法将列的值提取为整数形式?
或者,是否有更好的方法来格式化这两列/它们的值?
编辑:按要求输入样本:
例如name: Joe
和surname: Thomas
输出:NAME_00000JOE_00THOMAS
(both名和姓填充为8个字符)
例如name: Leonardo
和surname: DaCaprio
输出:NAME_LEONARDO_DaCaprio
(both姓名>= 8个字母,因此不需要填充)。
1条答案
按热度按时间0sgqnhkj1#
请检查下面的代码
字符串