You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem?
We need to enhance OpenSearch PPL (Piped Processing Language) by adding support for JSON-based operations. This extension will provide users with powerful tools to manipulate and analyze JSON data within PPL queries.
Proposed New Functions
json_object(): Creates a JSON object from existing key/value pairs.
... | eval person = json_object("name", "John", "age", 30)
json(): Evaluates whether a value can be parsed as JSON. Returns the value if valid, null otherwise.
... | eval result = json('{"name":"John","age":30}')
json_append(): Appends elements to the contents of a valid JSON object.
... | eval person = json_object("name", "John"), extended_person = json_append(person, "city", "New York")
json_array(): Creates a JSON array using a list of values.
Consider leveraging existing JSON libraries for efficient parsing and manipulation.
Ensure that these functions can handle large JSON objects without significant performance degradation.
Additional Context
This enhancement is inspired by similar functionality available in other query languages and will significantly improve OpenSearch's capability to handle and analyze JSON data within PPL queries.
Support for PPL extended json functionality is required for both:
Is your feature request related to a problem?
We need to enhance OpenSearch PPL (Piped Processing Language) by adding support for JSON-based operations. This extension will provide users with powerful tools to manipulate and analyze JSON data within PPL queries.
Proposed New Functions
json_object()
: Creates a JSON object from existing key/value pairs.json()
: Evaluates whether a value can be parsed as JSON. Returns the value if valid, null otherwise.json_append()
: Appends elements to the contents of a valid JSON object.json_array()
: Creates a JSON array using a list of values.json_array_to_mv()
: Maps the elements of a JSON array to a multivalued field.json_delete()
: Removes one or more keys and their corresponding values from the specified JSON object.json_extend()
: Extends the contents of a valid JSON object with the values of an array.json_extract()
: Returns either a JSON array or a native type value from a field and zero or more paths.json_keys()
: Returns the keys from the key-value pairs in a JSON object as a JSON array.json_set()
: Inserts or overwrites values for a JSON node with provided values and returns an updated JSON object.json_valid()
: Evaluates whether a JSON object uses valid JSON syntax and returns TRUE or FALSE.all()
: Iterates over JSON array values and returns true if every value matches the provided predicate.any()
: Iterates over JSON array values and returns true if any value matches the provided predicate.filter()
: Iterates over JSON array values and performs an operation on each value.map()
: Iterates over JSON array values and performs an operation on each value.reduce()
: Iterates over a JSON array in a field or a literal array and performs an accumulation operation.Technical Considerations
Additional Context
This enhancement is inspired by similar functionality available in other query languages and will significantly improve OpenSearch's capability to handle and analyze JSON data within PPL queries.
Support for PPL extended
json
functionality is required for both:OpenSearch based PPL engine
JSON
extended functions support #3028Spark based PPL engine
JSON
extended functions support opensearch-spark#667The text was updated successfully, but these errors were encountered: