部分场景下,我们可能希望从一个大表 unparsed 中抽取前100行并对这些行应用UDF,一种容易想到的SQL语句如下:
@pyspark insert into table parsed select url, parse_func(content) as parsed_content from unparsed limit 100;但这个语句实际上会对 unparsed 中的所有行先应用UDF然后再抽取前100行,不符合我们的期望,为此可以作出如下修改
@pyspark insert into table parsed select url, parse_func(content) as parsed_content from ( select url, content from unparsed limit 100 );注意,以下这种语句是无效的,速度并不会有任何改变:
@pyspark insert into table parsed (select url, parse_func(content) as parsed_content from unparsed limit 100);