将 XML 文件上传到 SAS
Uploading an XML file to SAS
我正在尝试将 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 的帖子和来自堆栈溢出的投票数据)最好的方法是什么去做吧。
要导入这样的 XML 文件,您应该首先创建一个 XML 地图。请参阅该主题的 SAS Documentation。您可以手动创建地图(我以前做过多次),也可以使用与 SAS 捆绑在一起或可单独下载的 XML 地图实用程序。确保为您的 SAS 版本制作正确的地图版本,因为更高版本的 SAS 支持更复杂的地图。
地图基本上告诉 SAS 什么定义了数据集,什么是行,什么是列,以及每列是什么数据类型。这让 SAS 知道什么东西去了哪里,否则它不知道把东西放在哪里。
我正在尝试将 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 的帖子和来自堆栈溢出的投票数据)最好的方法是什么去做吧。
要导入这样的 XML 文件,您应该首先创建一个 XML 地图。请参阅该主题的 SAS Documentation。您可以手动创建地图(我以前做过多次),也可以使用与 SAS 捆绑在一起或可单独下载的 XML 地图实用程序。确保为您的 SAS 版本制作正确的地图版本,因为更高版本的 SAS 支持更复杂的地图。
地图基本上告诉 SAS 什么定义了数据集,什么是行,什么是列,以及每列是什么数据类型。这让 SAS 知道什么东西去了哪里,否则它不知道把东西放在哪里。