我试图在select语句中进行一个简单的计算,如下所示:
for d in dataframes:
d = d.select(
'request_timestamp',
'shard_id',
'account_id',
repeat(lit('1'), (13 - length('account_id').cast(IntegerType()))).alias('custom'))
d.show()
repeat
函数返回以下错误:
我知道用udf
可以很容易地做到这一点,但是我想理解为什么即使我把它转换成Integer
,我也不能完成这个任务。在
Spark的
repeat
只能将普通整数作为第二个参数处理。但是配置单元的repeat
可以处理计算,并且可以将其与expr
一起使用,如下所示:相关问题 更多 >
编程相关推荐