我正在尝试将XML中的stackexchange数据转储上传到SAS。 它采用这种特殊格式。
<?xml version="1.0" encoding="UTF-8"?>
-<votes>
<row CreationDate="2013-10-22T00:00:00.000" VoteTypeId="2" PostId="4" Id="1"/>
<row CreationDate="2013-10-22T00:00:00.000" VoteTypeId="16" PostId="1" Id="2"/>
<row CreationDate="2013-10-22T00:00:00.000" VoteTypeId="2" PostId="1" Id="3"/>
</votes>
我尝试在SAS中使用默认的XML解析脚本,如xml和xml92,但导入失败。
libname Stackof xml 'C:\Users\abc\Documents\My SAS Files\Stackof\Votes.xml';
libname Stack 'C:\Users\abc\Documents\My SAS Files\Stack';
data stack.votes;
set stackof.votes;
run;
我能够在Excel中打开较小的文件,将它们转换为CSV然后上传它们,但是对于大文件(邮件大约29 GB和堆栈溢出的投票数据),最好的方法是什么。< / p>
答案 0 :(得分:1)
要导入这样的XML文件,首先应创建一个XML Map。有关该主题,请参阅SAS Documentation。您可以手动创建地图(我之前已经多次完成),或者您可以使用与SAS捆绑或可单独下载的XML Map实用程序。确保为SAS版本制作正确的地图版本,因为更高版本的SAS支持更复杂的地图。
地图基本上告诉SAS什么定义数据集,什么是行,什么是列,以及每列的数据类型。这让SAS知道什么在哪里,否则它不知道放在哪里。