Upload CSV file for scoring

Uploads a comma-separated values (CSV) file that is used for scoring. When you upload a CSV file, the data is loaded into Watson™ IoT Platform. The next time that you score, the data is used for scoring.

URL

APM_API_BASEURL/ibm/pmi/service/file_upload?instanceId=APM_ID&entityType=entityTypeInNotebook

Method

The request type POST

URL parameters

instanceId: String. The APM ID in the Maximo® APM - Predictive Maintenance Insights SaaS welcome letter. Mandatory.

entityType: String. The entityType used in the Jupyter Notebook. Mandatory.

Headers

apmapitoken: APM_API_KEY. The API key, which is used for authentication. Mandatory.

Data parameters
None.
Sample body
Body: form-data
Key=file
Value=test2.csv
Success response
200
Sample Curl call
curl  -X POST \
   '{{APM_API_BASEURL}}/ibm/pmi/service/file_upload?instanceId=xxxxxxxxxxx&entityType=TrainBrakeSensor' \
   -H 'Content-Type: multipart/form-data' \
   -H 'apmapitoken: xxxxxxxx \
   -H 'content-type: multipart/form-data; boundary=--33' \
   -F file=@/Users/test2.csv
)
Notes

The system uses the apmapitoken to do authentication. If you do not provide an apmapitoken, the system refuses your request.

The column names of CVS must match the column names that you use in the pmlib.setup_iot function call in the Notebook. For example, in the Notebook, you have
t = pmlib.setup_iot_type(
    name=iot_type, 
    df=df, 
    columns=[
        'TRAINBRAKESIMULATION_NUMBEROFPASSENGERS', 
        'TRAINBRAKESIMULATION_HUMIDITY', 
        'TRAINBRAKESIMULATION_LOAD',
        'TRAINBRAKESIMULATION_AXLEVIBRATION',
        'TRAINBRAKESIMULATION_TEMP',
        'TRAINBRAKESIMULATION_OBSCOND',
        'TRAINBRAKESIMULATION_RUNHOURS',
        'TRAINBRAKESIMULATION_WHEELSPEED',
        'TRAINBRAKESIMULATION_AXLEMOMENTUM',
    ], 
    deviceid_column='deviceid',
    timestamp_column='rcv_timestamp_utc', 
    timestamp_in_payload=True,
    rename_columns={
        'RCV_TIMESTAMP_UTC': 'customtime',
        'TRAINBRAKESIMULATION_NUMBEROFPASSENGERS': 'passengers', 
        'TRAINBRAKESIMULATION_HUMIDITY': 'humidity', 
        'TRAINBRAKESIMULATION_LOAD': 'load',
        'TRAINBRAKESIMULATION_AXLEVIBRATION': 'axlevibration',
        'TRAINBRAKESIMULATION_TEMP': 'temp',
        'TRAINBRAKESIMULATION_OBSCOND': 'obscond',
        'TRAINBRAKESIMULATION_RUNHOURS': 'runhours',
        'TRAINBRAKESIMULATION_WHEELSPEED': 'wheelspeed',
        'TRAINBRAKESIMULATION_AXLEMOMENTUM': 'axlemomentum',
    },
    write='deletefirst',
    use_wiotp=False)

The columns of the CSV file that is used by the API must have the columns' names that are the values of the rename_columns dictionary (key:value pair) and DEVICETYPE and DEVICEID columns.

Column names are not case-sensitive.

Here is a sample CSV file:

PASSENGERS,HUMIDITY,LOAD,AXLEVIBRATION,TEMP,OBSCOND,RUNHOURS,WHEELSPEED,AXLEMOMENTUM,DEVICETYPE,DEVICEID,CUSTOMTIME 101,35,62,7,46,3,1,43,28,TrainBrakeSensor,TrainBrake_1,2019-07-11 03:24:34