楼主: complicated
5682 7

你们是怎么处理分隔符/分割符的? [推广有奖]

  • 3关注
  • 18粉丝

副教授

65%

还不是VIP/贵宾

-

威望
0
论坛币
6463 个
通用积分
3868.8146
学术水平
88 点
热心指数
86 点
信用等级
58 点
经验
21961 点
帖子
507
精华
0
在线时间
1425 小时
注册时间
2007-6-16
最后登录
2024-4-20

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
背景:我,数据分析,向DBA提取数据,几百M的txt文件
第一次,提数需求里没写明字段之间用啥分隔,那哥们用了逗号,结果某文本字段内天然有很多逗号,于是proc import跑了一个七荤八素……

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


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

扫码加我 拉你入群

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

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

关键词:怎么处理 import Port 数据分析 DBA 分割

回帖推荐

ziyenano 发表于2楼  查看完整内容

proc import out= datafile="" dbms=dlm; replace; delimiter=; run; 或者在data步中,infile语句后面加 delimiter 或者dlmstr; 不过我觉得最好能用SAS去连接数据库,直接把表拖过来,最方便了; 不晓得你有没有权限了

本帖被以下文库推荐

密码被盗??
沙发
ziyenano 发表于 2012-12-28 18:11:38 |只看作者 |坛友微信交流群
proc import out=
datafile=""
dbms=dlm;
replace;
delimiter=;
run;
或者在data步中,infile语句后面加 delimiter 或者dlmstr;
不过我觉得最好能用SAS去连接数据库,直接把表拖过来,最方便了;
不晓得你有没有权限了
已有 2 人评分经验 论坛币 热心指数 收起 理由
bakoll + 3 + 3 精彩帖子
数据分析师3K + 20 + 1 鼓励积极发帖讨论

总评分: 经验 + 23  论坛币 + 3  热心指数 + 1   查看全部评分

使用道具

藤椅
complicated 在职认证  发表于 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……我想我快憋不住要换地方了
已有 1 人评分经验 热心指数 收起 理由
数据分析师3K + 20 + 1 鼓励积极发帖讨论

总评分: 经验 + 20  热心指数 + 1   查看全部评分

密码被盗??

使用道具

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

使用道具

报纸
complicated 在职认证  发表于 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
密码被盗??

使用道具

地板
ziyenano 发表于 2012-12-29 20:53:50 |只看作者 |坛友微信交流群
complicated 发表于 2012-12-29 18:43
嗯嗯,Z大说的有理!
大而麻烦的txt用import基本都有问题,文本字段长一点的基本都给截断,导入之后还要 ...
祝你成功~加油!

使用道具

7
zhangg 发表于 2012-12-30 14:48:35 |只看作者 |坛友微信交流群
我一般是这么处理的。
不管三七二十一,先统统读入进SAS,就算只有一列。再在SAS里面利用分割符断句分列。

使用道具

8
complicated 在职认证  发表于 2013-1-7 13:46:06 |只看作者 |坛友微信交流群
zhangg 发表于 2012-12-30 14:48
我一般是这么处理的。
不管三七二十一,先统统读入进SAS,就算只有一列。再在SAS里面利用分割符断句分列。 ...
貌似也可以,下回试一试,谢谢!
密码被盗??

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 02:40