-
Notifications
You must be signed in to change notification settings - Fork 157
Add earliest and latest in condition function #3640
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Signed-off-by: xinyual <[email protected]>
Signed-off-by: xinyual <[email protected]>
Signed-off-by: xinyual <[email protected]>
Signed-off-by: xinyual <[email protected]>
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In SPL doc, these functions are applied to _raw
field, but in our impl it's just an alias of min/max?
Signed-off-by: xinyual <[email protected]>
Add the doc. |
Signed-off-by: xinyual <[email protected]>
Signed-off-by: xinyual <[email protected]>
Signed-off-by: xinyual <[email protected]>
Signed-off-by: xinyual <[email protected]>
Signed-off-by: xinyual <[email protected]>
Signed-off-by: xinyual <[email protected]>
Signed-off-by: xinyual <[email protected]>
"1970-01-18 20:22:32", | ||
"2018-08-19 00:00:00")); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am afraid the current implementation may be wrong, the current implementation treat the earliest
and latest
as window function with default window frame. IMO, the behavior is odd. Please check again if they require to use other window frame instead default.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@xinyual does spark-ppl support eventstats earliest(birthdate), latest(birthdate)
, if not, can we decide later, and only support it as condition function?
From user perspective, It is alias of min/max function, not impact usability.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Spark-ppl only supports it as condition function. Currently I forbid them as window/aggregation in the latest code.
|
||
Usage: earliest(relative_string, field) returns true if the field is after transferring the relative_string. | ||
|
||
relative_string: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-
Does relative_string follow RELATIVE_TIMESTAMP or OpenSearch date math?
-
relative_string should include a clear definition of the supported time modifiers.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Does relative_string follow RELATIVE_TIMESTAMP or OpenSearch date math?
Yes.
- relative_string should include a clear definition of the supported time modifiers.
@xinyual add link to https://github.com/opensearch-project/opensearch-spark/blob/main/docs/ppl-lang/functions/ppl-datetime.md#relative_timestamp here.
ZonedDateTime candidateDatetime = ZonedDateTime.ofInstant(candidate, clock.getZone()); | ||
ZonedDateTime latest = | ||
getRelativeZonedDateTime( | ||
expression, ZonedDateTime.ofInstant(clock.instant(), clock.getZone())); | ||
return latest.isAfter(candidateDatetime); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In case all timestamp use same timezone, this PR actually does not have similar issue as #3725?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes.
Signed-off-by: xinyual <[email protected]>
Signed-off-by: xinyual <[email protected]>
Signed-off-by: xinyual <[email protected]>
Signed-off-by: xinyual <[email protected]>
Signed-off-by: xinyual <[email protected]>
Signed-off-by: xinyual <[email protected]>
Signed-off-by: xinyual <[email protected]>
Signed-off-by: xinyual <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM once doc comment addressed.
@@ -61,4 +61,9 @@ private PPLOperandTypes() {} | |||
public static final UDFOperandMetadata DATE_OR_TIMESTAMP_OR_STRING = | |||
UDFOperandMetadata.wrap( | |||
(CompositeOperandTypeChecker) OperandTypes.DATE_OR_TIMESTAMP.or(OperandTypes.STRING)); | |||
public static final UDFOperandMetadata STRING_DATE_OR_TIMESTAMP = |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
minor: change to STRING_OR_TIMESTAMP
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Already rename to STRING_TIMESTMAP, which means accept (STRING, TIMESTAMP)
|
||
Usage: earliest(relative_string, field) returns true if the field is after transferring the relative_string. | ||
|
||
relative_string: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Does relative_string follow RELATIVE_TIMESTAMP or OpenSearch date math?
Yes.
- relative_string should include a clear definition of the supported time modifiers.
@xinyual add link to https://github.com/opensearch-project/opensearch-spark/blob/main/docs/ppl-lang/functions/ppl-datetime.md#relative_timestamp here.
Signed-off-by: xinyual <[email protected]>
Signed-off-by: xinyual <[email protected]>
Signed-off-by: xinyual <[email protected]>
Signed-off-by: xinyual <[email protected]>
Description
This pr add latest/earliest as two condition function, it will calculate the relative time according to relative string and current time.
Related Issues
Resolves #[Issue number to be closed when this PR is merged]
#3639
Check List
--signoff
.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.