【发布时间】:2016-03-24 10:41:37
【问题描述】:
我正在使用 Spark SQL 中的 UDF 生成一些测试数据。 我有一个字段 field_b,它将随机数生成与另一个字段 field_a 结合使用。第三个字段 field_c 是 field_b 的值除以 100。
即
select
field_a
randomUDF(field_a) as field_b
from
my_table
我先这样做,然后使用第二个选择(因为我无法引用生成的字段)来形成第三个字段,如下所示:
select
field_a
field_b
divisionUDF(field_b) as field_c
from
my_table
我的问题是它没有计算 field_b 的值;它保留对函数的引用。这意味着随机生成的部分不同,field_c不是field_b/100
有没有一种方法可以强制它对 field_b 进行一次评估并保持该值(不写入磁盘)? 更好的是,如果它可以在单个 select 语句中完成(我知道我可以使用子查询),那就太好了。
【问题讨论】:
标签: apache-spark-sql