由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 问一个SAS leftjoin 报错的问题, 是不是服务器空间不够?
相关主题
珍惜生命,远离hsbc。看完SAS little book以后下一本最好什么?
完全不懂SAS,急请教一个问题在SAS中不用proc sql的情况下实现inequality join
[合集] way to do exclusive outer join by proc sql关于SAS Advance 9 的考试体会
问个PROC SQL中INNER JOIN的问题Help! proc sql;cout not null value.
请问SAS大牛一个关于proc sql joinSAS question:Please give me your suggestions!
SAS 问题How to compare two correlations in SAS?
SAS 编程问题 (有包子)一个不小心 Adv考了个100
PROC SQL join data help请问熟悉SAS IML的
相关话题的讨论汇总
话题: livedvr话题: hhs话题: big5prime话题: error话题: sql
进入Statistics版参与讨论
1 (共1页)
l****i
发帖数: 398
1
我们用的是EG5.1在Unix Server上跑的SAS.昨天在用proc sql leftjoin做两个比较大
的数据合并的时候porc sql跑了大概2个小时最后还是报错终止了。错误信息如下:
ERROR: An I/O error has occurred on file VOD.DEMO_LIVEDVR_HHS_BIG5PRIME.DATA.
ERROR: File VOD.DEMO_LIVEDVR_HHS_BIG5PRIME.DATA is damaged. I/O processing
did not complete.
想问一下这大概是什么原因导致,有什么办法解决?
我的code很简单其实就是把一个家庭户level数据中的一个demo变量合并到一个关于家
庭户在11月晚间所有电视节目的收视数据中去。家庭户demo数据有2.7 million个row总
共1.8G, 收视数据有126 million个row,总共11.5G。收视数据中的unique家庭户和demo
数据中的unique家庭户会有些出入,两个文件通过家庭id link起来。下面是完整log,
请大牛看看是啥问题导致的,如何解决!
15 /*merge with demo_tagged infor from demo_livedvr_viewing_hhs*/
16 PROC SQL;
17 CREATE TABLE vod.demo_livedvr_hhs_big5prime AS
18 SELECT a.*,
19 b.hhs_type,
20 b.demo_tagged
21 FROM vod.livedvr_telehhs_big5prime a LEFT JOIN vod.demotagged_
livedvr_hhs b
22 ON a.headend_no = b.headend_no AND b.hh_no = b.hh_no;
ERROR: An I/O error has occurred on file VOD.DEMO_LIVEDVR_HHS_BIG5PRIME.DATA.
ERROR: File VOD.DEMO_LIVEDVR_HHS_BIG5PRIME.DATA is damaged. I/O processing
did not complete.
NOTE: PROC SQL set option NOEXEC and will continue to check the syntax of
statements.
23 QUIT;
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE SQL used (Total process time):
real time 2:26:37.46
cpu time 52:27.33
p********a
发帖数: 5352
2
用MERGE BY试试吧。你这个多半是MEMORY出错。PROC SQL JOIN两大TABLE不很
EFFICIENT
s******8
发帖数: 102
3
没用过EG,用词不专业的话请别笑。
1.你确信demotagged_livedvr_hhs中,headend_no and hh_no是唯一的吗?如果两边都
不是唯一,就可能生成一个很大的新表,导致错误。当然大量记录缺失Key值应该不会
发生,但确认一下或许也有帮助。
试一下:
PROC SQL;
CREATE TABLE vod.demo_livedvr_hhs_big5prime AS
SELECT a.*,
b.hhs_type,
b.demo_tagged
FROM vod.livedvr_telehhs_big5prime a LEFT JOIN
(select distinct headend_no,hh_no,hhs_type,demo_tagged from vod.demotagged_
livedvr_hhs) b
ON a.headend_no = b.headend_no AND b.hh_no = b.hh_no;

2.有过I/O ERROR 经验是大数据存在shared网络存储器上,导致本地机读写错误。确认
一下,你的问题不是存储器与主机间通路堵塞造成的I/O。尤其是当你产生的文件巨大
情况下。
r**********d
发帖数: 510
4
AND b.hh_no = b.hh_no; typo there ?
b********1
发帖数: 291
5
nice catch. I think the typo caused a 'self_join'.
l****i
发帖数: 398
6
多谢各位回复。后来确认问题确实是服务器内存不够了。把temp directory都塞满了,
然后就终止程序了。后来解决办法是吧那个126million的大表分割成3个文件,然后
LEFT JOIN。最后5分钟不到完成了。
l****i
发帖数: 398
7
确认应该是typo引起的问题,然后把TEMP DIRECTORY撑爆了。我后来把typo改了重新跑
了一
变,没有分割文件,5分钟不到也跑出来了。 写code还是要仔细啊!

【在 r**********d 的大作中提到】
: AND b.hh_no = b.hh_no; typo there ?
l****i
发帖数: 398
8
恩,那为什么'self join'会把内存撑爆呢?

【在 b********1 的大作中提到】
: nice catch. I think the typo caused a 'self_join'.
D******n
发帖数: 2836
9
内存还是硬盘?

【在 l****i 的大作中提到】
: 多谢各位回复。后来确认问题确实是服务器内存不够了。把temp directory都塞满了,
: 然后就终止程序了。后来解决办法是吧那个126million的大表分割成3个文件,然后
: LEFT JOIN。最后5分钟不到完成了。

l****i
发帖数: 398
10
server上的temp directory。我也不知道算内存还是硬盘。之前这个问题报错的时候服
务器的提示是Disk Usage is CRITICAL, mnt/nfs/vol_na1_corplivesas2_nfs1/
mounts = 99% 同事给了我两个解决办法,1.用服务器的客户端写command line调用最
大内存跑sas程序:/opt/sas93/SASFoundation/9.3/bin/sas_en -memsize 0 your_
program.sas&
2.就是把数据分割一下跑。

【在 D******n 的大作中提到】
: 内存还是硬盘?
D******n
发帖数: 2836
11
内存跟硬盘两回事。。。。你这个是硬盘。
很可能是找了个小盘做work
可以redirect一下 work
sas -work /xx/xxx/xx your_program.sas&

【在 l****i 的大作中提到】
: server上的temp directory。我也不知道算内存还是硬盘。之前这个问题报错的时候服
: 务器的提示是Disk Usage is CRITICAL, mnt/nfs/vol_na1_corplivesas2_nfs1/
: mounts = 99% 同事给了我两个解决办法,1.用服务器的客户端写command line调用最
: 大内存跑sas程序:/opt/sas93/SASFoundation/9.3/bin/sas_en -memsize 0 your_
: program.sas&
: 2.就是把数据分割一下跑。

1 (共1页)
进入Statistics版参与讨论
相关主题
请问熟悉SAS IML的请问SAS大牛一个关于proc sql join
Proc SQL 能不能直接读 非 SAS format 的数据,txt , csv 等SAS 问题
问个SAS的问题SAS 编程问题 (有包子)
How to do "data quality check in a methodical manner" By SAS or Proc SQL ?PROC SQL join data help
珍惜生命,远离hsbc。看完SAS little book以后下一本最好什么?
完全不懂SAS,急请教一个问题在SAS中不用proc sql的情况下实现inequality join
[合集] way to do exclusive outer join by proc sql关于SAS Advance 9 的考试体会
问个PROC SQL中INNER JOIN的问题Help! proc sql;cout not null value.
相关话题的讨论汇总
话题: livedvr话题: hhs话题: big5prime话题: error话题: sql