I have machine data that I am storing in a CSV file, and I want to pull this data from the CSV file into a dataset tag for live analysis. I am stuck with Ignition Edge for now, so querying a database is not an option.
I'm using this method (along with system.file.readFileAsString):
Here is the CSV file I am trying to read:
Book8.csv (2.1 KB)
Here is my Gateway script:
path1 = '/home/dev/unsecured/Book8.csv'
dataString = system.file.readFileAsString(path1)
logger = system.util.getLogger("testlogger")
logger.info(dataString)
data1 = system.dataset.fromCSV(dataString)
And here is my Gateway log:
Here's the expanded error message:
com.inductiveautomation.ignition.common.script.JythonExecException: Traceback (most recent call last): File "", line 5, in ValueError: CSV invalid format: expected #NAMES on line 1
at org.python.core.Py.ValueError(Py.java:334)
at com.inductiveautomation.ignition.common.script.builtin.DatasetUtilities.fromCSV(DatasetUtilities.java:693)
at jdk.internal.reflect.GeneratedMethodAccessor44151.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:190)
at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:208)
at org.python.core.PyObject.__call__(PyObject.java:461)
at org.python.core.PyObject.__call__(PyObject.java:465)
at org.python.pycode._pyx1357.f$0(:5)
at org.python.pycode._pyx1357.call_function()
at org.python.core.PyTableCode.call(PyTableCode.java:173)
at org.python.core.PyCode.call(PyCode.java:18)
at org.python.core.Py.runCode(Py.java:1687)
at com.inductiveautomation.ignition.common.script.ScriptManager.runCode(ScriptManager.java:800)
at com.inductiveautomation.ignition.gateway.project.ProjectScriptLifecycle$TrackingProjectScriptManager.runCode(ProjectScriptLifecycle.java:819)
at com.inductiveautomation.ignition.common.script.ScriptManager.runCode(ScriptManager.java:748)
at com.inductiveautomation.ignition.gateway.project.ProjectScriptLifecycle$TrackingProjectScriptManager.runCode(ProjectScriptLifecycle.java:800)
at com.inductiveautomation.ignition.common.script.TimerScriptTask.run(TimerScriptTask.java:90)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: org.python.core.PyException: ValueError: CSV invalid format: expected #NAMES on line 1
... 25 common frames omitted
Any idea what the issue is here? I suspect it's due to how I have my CSV file formatted, but I thought I had matched the required formatting for system.dataset.fromCSV