2

データを読み込んでみます。動いていない。

私が試したこと:
複数の区切り文字、引用符付きのすべてのフィールド、引用符なしのすべてのフィールド、ヘッダーをデータから除外、mlcp の区切り文字オ​​プションなし、mlcp の他の区切り文字オ​​プション、他のコンピューター、他の ML8 バージョン、他の Java バージョン、少ないデータ、変換の有無にかかわらず、より多くのデータ。

私のシェルスクリプト:

#!/bin/bash

# Data laden met transform
#############################################
mlcp.sh import \
 -host localhost \
 -port 37041 \
 -username admin \
 -password admin \
 -input_file_path sampledata/DIKW \
 -input_file_type delimited_text \
 -delimiter ";" \
 -transform_module /ext/obi/transform/dikw-transform-eval.xqy \
 -transform_namespace "http://marklogic.com/dikw" \
 -mode local \
 -thread_count 1 \
 -transaction_size 1 \
 -batch_size 1

データ

"INCIDENTID";"DATUM";"TIJD";"HECTOMETERAANDUIDING";"WEGNAAM";"KORTBESCHRIJVING"
161236;02-08-14 00:00;1839-11-23 17:05:20;13.3;A14;"a- 1pa" 

エラー

15/10/29 11:15:23 ERROR contentpump.DelimitedTextReader: (line 0) invalid char between encapsulated token end delimiter
4

2 に答える 2

2

このブログIngesting Delimited Text with MLCPを確認してください。この種の問題の理由と対処法が説明されています。つまり、主に次のようなデータがあるため、このエラーが表示されます。

"first"name;lastName;middle

ここの最初の列は無効な CSV 列です。これは、エスケープしない限り、フィールド内に引用符を含めることができないためです。詳しくは投稿をご覧ください。

ご質問のデータサンプルでは問題ありませんが。ただし、元のデータで、フィールドの途中にエスケープされていない二重引用符を残さないようにしてください。ところで、あなたが使っている mlcp のバージョンは何ですか?

于 2015-10-29T16:08:30.877 に答える
2

非標準の区切り文字を使用する場合、オプション ファイルを使用した方がうまくいくことがよくあります。

options.txt:

import
-host
localhost
-port
37041
-username
admin
-password
admin
-input_file_path
sampledata/DIKW
-input_file_type
delimited_text
-delimiter
;
-transform_module
/ext/obi/transform/dikw-transform-eval.xqy
-transform_namespace
http://marklogic.com/dikw
-mode
local
-thread_count
1
-transaction_size
1
-batch_size
1

セミコロンの前後の引用符をスキップできることに注意してください。それで:

mlcp.sh -options_file options.txt
于 2015-10-29T17:22:56.540 に答える