加载文件时如何从CSV文件中删除列



我想从CSV文件中删除特定列,并使用MLCP加载到数据库中。

我的CSV文件包含:

URI,EmpId,Name,age,gender,salary
1/Niranjan,1,Niranjan,35,M,1000
2/Deepan,2,Deepan,25,M,2000
3/Mehul,3,Mehul,28,M,3000

我想将该URI列用作文档的URI,还应在插入的文档中跳过/删除URI列。

如何做?

使用MLCP而不是在Marklogic Data Hub上下文中使用MLCP Tranforms时最好的选择。您可以在这里找到一些解释,还有一些示例:

摄入期间转换内容

如果您将CSV转换为JSON,则可以使用以下内容。

将此作为/strip-columns.sjs保存在模块数据库中:

/* jshint node: true */
/* global xdmp */
exports.transform = function(content, context) {
  'use strict';
  /* jshint camelcase: false */
  var stripColumns = (context.transform_param !== undefined) ? context.transform_param.split(/,/) : [];
  /* jshint camelcase: true */
  // detect JSON, assumes uri has correct extension
  if (xdmp.uriFormat(content.uri) === 'json') {
    // Convert input to mutable object for manipulation
    var newDoc = content.value.toObject();
    Object.keys(newDoc)
    .map(function(key) {
      if (stripColumns.indexOf(key) > -1) {
        delete newDoc[key];
      }
    });
    // Convert result back into a document
    content.value = newDoc;
  }
  // return updated content object
  return content;
};

然后您将其调用:

mlcp.sh import -input_file_path test.csv -input_file_type delimited_text -uri_id URI -document_type json -output_uri_prefix / -output_uri_suffix .json -output_collections data,type/csv,format/json -output_permissions app-user,read -transform_module /strip-columns.sjs -transform_param URI

hth!

相关内容

  • 没有找到相关文章