Ich habe Code, der perfekt funktioniert, aber ich möchte GNU parallel verwenden und es schneller laufen lassen. Der Code liest eine Datei mit einem JSON in jeder Zeile ein, analysiert sie und erstellt eine weitere Zeile.Mehrere Parameter an Python in GNU parallel übergeben
Input (json.in)
{"NBR": "8001474830", "UNIQUE_ID": "PP007.8001474830.20150807"}
Output
{"create": {"_type": "transaction", "_id":"PP007.8001474830.20150807.8001474830", "_index": "DB_order"}}
{"NBR": "8001474830:, "UNIQUE_ID": "PP007.8001474830.20150807"}
Python-Code wird wie folgt:
import sys
import json
import fileinput
index = ""+sys.argv[2]+""
type = ""+sys.argv[3]+""
create_bulk={ "create": { "_index": index, "_type": type, "_id": "0"}}
for line in fileinput.input(sys.argv[1]):
json_in=json.loads(line)
create_bulk["create"]["_id"]=json_in["UNIQUE_ID"]+"."+json_in["NBR"]
print json.dumps(create_bulk)
print json.dumps(json_in)
ich den Code auszuführen, wie
python json_parser.py json.in DB_order transaction
folgt
Meine Frage ist, wie konvertiere ich dies in GNU parallele Syntax.
ich in der Lage bin, um es nur in GNU parallel amke arbeitet nach Dateinamen wie folgt übergeben:
parallel --pipepart -a json.in --block 1M Python json_parser.py
Aber wie gebe ich die anderen beiden Parameter DB_order und transaction?
Dank
Ole danke für den Aufbau von GNU parallel und nehmen Sie sich Zeit, um Fragen zu beantworten! – user3646519