全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6029 7
2012-12-28
背景:我,数据分析,向DBA提取数据,几百M的txt文件
第一次,提数需求里没写明字段之间用啥分隔,那哥们用了逗号,结果某文本字段内天然有很多逗号,于是proc import跑了一个七荤八素……

第二次,反映了这个问题,请DBA童鞋换个分割符,那厮用了这玩意   |$|   ,这泥马真是绝世无双的分割符!可是我费了牛劲才算是搞定了……


各位大牛,请教你们是怎么对付这种问题的?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-12-28 18:11:38
proc import out=
datafile=""
dbms=dlm;
replace;
delimiter=;
run;
或者在data步中,infile语句后面加 delimiter 或者dlmstr;
不过我觉得最好能用SAS去连接数据库,直接把表拖过来,最方便了;
不晓得你有没有权限了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-28 18:51:17
ziyenano 发表于 2012-12-28 18:11
proc import out=
datafile=""
dbms=dlm;
感谢Z大!我又试了一遍,还是导不进来,我想可能是数据有其他的问题。
txt真的不是什么好办法,各种格式不兼容,各种读表误差……
以我司的数据治理水平,且不说权限的问题,我根本不晓得该去读哪个库,这批数据,应该是从4、5个不能跨库查询的生产系统里抓出来的,而且,部分数据是临时从xml里解析出来的,据说我们还有很多数据存在hadoop平台里,得写pig……我想我快憋不住要换地方了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-28 19:44:35
complicated 发表于 2012-12-28 18:51
感谢Z大!我又试了一遍,还是导不进来,我想可能是数据有其他的问题。
txt真的不是什么好办法,各种格式 ...
文本格式算是通用的了;
不过用SAS去读也有点烦,data+inifle要去写每个字段的格式 长度,
字段一多,真不想一个个去写,
用proc import,虽然不用自己写,但系统识别的格式
很容易造成数据的截断。
不过最好还是和DBA兄弟商量一下,给你生成一个临时表,放在一个库里,
然后用SAS去连接,
如果不给权限,那也导成数据库的表给你,你用自己的数据库客户端读入表,
再转到SAS中来
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-29 18:43:51
ziyenano 发表于 2012-12-28 19:44
文本格式算是通用的了;
不过用SAS去读也有点烦,data+inifle要去写每个字段的格式 长度,
字段一多,真 ...
嗯嗯,Z大说的有理!
大而麻烦的txt用import基本都有问题,文本字段长一点的基本都给截断,导入之后还要重新命名。
我一般是这样,用proc import导入之后,把log里系统自动生成的data infile那段注释考出来,再改一改当代码用,嘿嘿,能省一点事吧!
2013年,我一定要推进我们公司的数据传输规范化,不成功就成仁! LOL
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-29 20:53:50
complicated 发表于 2012-12-29 18:43
嗯嗯,Z大说的有理!
大而麻烦的txt用import基本都有问题,文本字段长一点的基本都给截断,导入之后还要 ...
祝你成功~加油!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群