2017-05-11 43 views
0

私は最初にmbox形式でエンロン電子メールデータセットを変換し、次にJSONドキュメントでスクリプトを使用したいと考えています。その後、スクリプトはstream2esユーティリティを使用してこのJSONをelasticsearchに自動的にインポートします。ここで私は問題に直面した。スクリプトを起動すると、stream2esユーティリティを除いてすべてがうまくいっています。実際には、stream2es: command not foundが表示されます。 私は、スクリプト、Enron電子メールフォルダとstream2esのフォルダを持っています。私はstreams2esに許可を与えているので、私はスクリプトを動作させるためのすべてを持っていると思う。 は、私はここのスクリプトを投稿するつもりです:stream2es:コマンドが見つかりません

#!/bin/sh 
# 
# Loading enron data into elasticsearch 
# 
# Prerequisites: 
# make sure that stream2es utility is present in the path 
# install beautifulsoup4 and lxml: 
# sudo easy_install beautifulsoup4 
# sudo easy_install lxml 
# 
# The mailboxes__jsonify_mbox.py and mailboxes__convert_enron_inbox_to_mbox.py are modified 
# versions of https://github.com/ptwobrussell/Mining-the-Social-Web/tree/master/python_code 
# 
#if [ ! -d enron_mail_20110402 ]; then 
# echo "Downloading enron file" 
# curl -O -L http://www.cs.cmu.edu/~enron/enron_mail_20110402.tgz 
# tar -xzf enron_mail_20110402.tgz 
#fi 
if [ ! -f enron.mbox.json ]; then 
    echo "Converting enron emails to mbox format" 
    python mailboxes__convert_enron_inbox_to_mbox.py allen-p > enron.mbox  # allen-p is one of the folders within Enron dataset 
    echo "Converting enron emails to json format" 
    python mailboxes__jsonify_mbox.py enron.mbox > enron.mbox.json 
    rm enron.mbox 
fi 
echo "Indexing enron emails" 
es_host="http://localhost:9200" 
curl -XDELETE "$es_host/enron" 
curl -XPUT "$es_host/enron" -d '{ 
    "settings": { 
     "index.number_of_replicas": 0, 
     "index.number_of_shards": 5, 
     "index.refresh_interval": -1 
    }, 
    "mappings": { 
     "email": { 
      "properties": { 
       "Bcc": { 
        "type": "string", 
        "index": "not_analyzed" 
       }, 
       "Cc": { 
        "type": "string", 
        "index": "not_analyzed" 
       }, 
       "Content-Transfer-Encoding": { 
        "type": "string", 
        "index": "not_analyzed" 
       }, 
       "Content-Type": { 
        "type": "string", 
        "index": "not_analyzed" 
       }, 
       "Date": { 
        "type" : "date", 
        "format" : "EEE, dd MMM YYYY HH:mm:ss Z" 
       }, 
       "From": { 
        "type": "string", 
        "index": "not_analyzed" 
       }, 
       "Message-ID": { 
        "type": "string", 
        "index": "not_analyzed" 
       }, 
       "Mime-Version": { 
        "type": "string", 
        "index": "not_analyzed" 
       }, 
       "Subject": { 
        "type": "string" 
       }, 
       "To": { 
        "type": "string", 
        "index": "not_analyzed" 
       }, 
       "X-FileName": { 
        "type": "string", 
        "index": "not_analyzed" 
       }, 
       "X-Folder": { 
        "type": "string", 
        "index": "not_analyzed" 
       }, 
       "X-From": { 
        "type": "string", 
        "index": "not_analyzed" 
       }, 
       "X-Origin": { 
        "type": "string", 
        "index": "not_analyzed" 
       }, 
       "X-To": { 
        "type": "string", 
        "index": "not_analyzed" 
       }, 
       "X-bcc": { 
        "type": "string", 
        "index": "not_analyzed" 
       }, 
       "X-cc": { 
        "type": "string", 
        "index": "not_analyzed" 
       }, 
       "bytes": { 
        "type": "long" 
       }, 
       "offset": { 
        "type": "long" 
       }, 
       "parts": { 
        "dynamic": "true", 
        "properties": { 
         "content": { 
          "type": "string" 
         }, 
         "contentType": { 
          "type": "string", 
          "index": "not_analyzed" 
         } 
        } 
       } 
      } 
     } 
    } 
}' 

stream2es stdin --target $es_host/enron/email < enron.mbox.json 

誰もがstream2es command not found問題を解決するために私を助けることができますか?君たちありがとう。

+0

あなたの 'stream2es'には実行権がありますか? 'chmod u + x stream2es'を実行してスクリプトを再実行するとどうなりますか? – Val

+0

githubガイドが言うように 'chmod + x stream2es'を実行しました。とにかく私がこの事を実行した場合、スクリプトは 'stream2es:command not found'の報告に失敗します – Riccardo

+0

@Valこれをどのように修正できますか? – Riccardo

答えて

1

command not foundは、シェルがstream2esコマンドを見つけることができないことを意味します。どちらかがあなたの$PATH に配置されているフォルダにstream2esを移動する必要があるか

  • (すなわち、同じフォルダにあるstream2esスクリプトを呼び出す)./stream2esを呼び出す必要がある

    1. あなたのスクリプト:2つのオプションがあります
  • 関連する問題