我正在尝试创建一个混合表,结合两个海量数据集中的一些字段。我在SAS EG 7.2中运行它。
我最初尝试加入这两个表,但我收到以下消息:
//get which rows are empty
std::vector<bool> has_value(Nbins,false);
for (auto tr : tripletList) has_value[tr.row()] = true;
//create map from old to new indices
std::map<unsigned,unsigned> row_map;
unsigned new_idx=0;
for (unsigned old_idx=0; old_idx<Nbins; old_idx++)
if(has_value[old_idx])
row_map[old_idx]=new_idx++;
//make new triplet list, dropping empty rows
std::vector<Eigen::Triplet<double> > newTripletList;
newTripletList.reserve(Ndata);
for (auto tr : tripletList)
newTripletList.push_back(
Eigen::Triplet<double>(row_map[tr.row()],tr.col(),tr.value()));
//form new matrix and return
Eigen::SparseMatrix<double, Eigen::RowMajor> ret(new_idx,Ndata);
ret.setFromTriplets(newTripletList.begin(), newTripletList.end());
我正在进行的连接包含的列数少于单独查看的两个表。我执行程序时遇到同样的错误。
在代码中,我首先将表(a)连接到包含两个表的键(b)的表。
表
代码如下所示:
ERROR: Insufficient space in file JVTEST.GT_IFRS_JOIN1_MAY.DATA.
ERROR: File JVTEST.GT_IFRS_JOIN1_MAY.DATA is damaged. I/O processing did not complete.
您对此为何发生了什么想法?如上所述,新的混合表理论上比单独看到的两个表中的任何一个都要小得多。另外,你知道如何规避错误吗?
谢谢!