阅读背景:

SQL之LIMIT子句踩坑记录

来源:互联网 

部分场景下,我们可能希望从一个大表 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);
分享到: