我正在尝试在hadoop中使用sql在sas中“联合所有”多个表。我在union all上找到了线程,并且能够让它在本地sas用户中运行,但是输出太大,sas崩溃了,所以我必须把我想要合并的数据集放到hadoop中,然后合并它们。这就是我在语法上遇到的问题。代码如下。我通常使用代码的开头和结尾部分来连接hadoop。
Proc SQL noerrorstop;
Connect to HADOOP (server='X' port=X);
Execute (set X) by HADOOP;
Execute (drop Table X.CV_All) by HADOOP;
Execute (create Table X.CV_All as
SELECT cv.*
INTO: CV_All
FROM (SELECT * FROM X.CV_Dec
UNION ALL
SELECT * FROM X.CV_Jan
UNION ALL
SELECT * FROM X.CV_Feb) cv;
) by HADOOP;
DISCONNECT FROM HADOOP;
quit;
我收到以下错误:错误:执行错误:编译语句时出错:失败:parseexception行1:86在“:”near“into”处缺少eof
先谢谢你。
1条答案
按热度按时间yptwkmov1#
我认为hadoop使用
create table as
而不是select into
. 这有用吗?一些评论。首先,我不认为子查询对于这个语句是必要的,但是我把它保留了下来。
其次,hadoop缺少了一点,因为它有多个格式相同的表。您应该有一个带有日期列的表。您可以按日期按数据进行分区。