Support Questions
Find answers, ask questions, and share your expertise
Announcements
Alert: Welcome to the Unified Cloudera Community. Former HCC members be sure to read and learn how to activate your account here.

How to count the number of records of a JSON object flow file in NiFi?

Solved Go to solution
Highlighted

How to count the number of records of a JSON object flow file in NiFi?

New Contributor

I am calling an API which returns a JSON object as the body of the response as a flow file. I want to count the total records in the flow file.

I tried record processors like CalculateRecordStats needs a record reader and that in-turn needs a schema. But I don't have a schema. So Is there a better way to do it?

{
"result":[
    {
        "key1": "value1",
        "key2": "value2"
    },
    {
        "key1": "value1",
        "key2": "value2"
    }
]
}

This is the sample JSON the api response body returns. The records are the items of the list which is the value of the "result" key

In the above sample there are 2 records (2 items in the list). So that is what I want to calculate.


You can also answer here

1 ACCEPTED SOLUTION

Accepted Solutions

Re: How to count the number of records of a JSON object flow file in NiFi?

Super Mentor

@Sandeep Gunda

One aproach may be to use the "EvaluateJsonPath" Processor as following to get the total number of results (basically result is an Array here) so we can try something like following to store the size of the array to a new attribute

resultCount = $.result.length()

Example:

109404-json-array-count.png




Then later you can read the attribute resultCount in some other processor as following: ${resultCount}

.

1 REPLY 1

Re: How to count the number of records of a JSON object flow file in NiFi?

Super Mentor

@Sandeep Gunda

One aproach may be to use the "EvaluateJsonPath" Processor as following to get the total number of results (basically result is an Array here) so we can try something like following to store the size of the array to a new attribute

resultCount = $.result.length()

Example:

109404-json-array-count.png




Then later you can read the attribute resultCount in some other processor as following: ${resultCount}

.